ホームページ > バックエンド開発 > PHPチュートリアル > このような SQL ステートメントを記述することに問題はありますか?

このような SQL ステートメントを記述することに問題はありますか?

WBOY
リリース: 2016-06-13 13:20:44
オリジナル
879 人が閲覧しました

このような SQL ステートメントを記述することに問題はありますか?
select * from (select * from xf_art where flag=3 order by add_time desc) a,(select id userid,username from xf_usr where flag!=9) u where a .xfuid= u.userid order by a.add_time desc

上記のSQL文は退職した同僚が書いたものですが、どう見ても違和感があります。 SQL文の書き方に問題があるのでしょうか?何が問題ですか(今は言えないのでアドバイスをお願いします)

-----解決策----------- ---- ----
ステートメントに問題はありませんが、確認するには Explain を使用する必要があります。

SQL コード

1

2

3

Explain select * from (select * from xf_art where flag=3 order by add_time desc) a,(select id userid,username from xf_usr where flag!=9 ) u where a.xfuid=u.userid order by a.add_time desc

<br><font color="#e78608">------解決策----------------------</font><br>問題ありません。パフォーマンスの観点からは、まず注文ですby add_time desc は必要ありません。

<br><font color="#e78608">------解決策---------</font><br>このような SQL ステートメントは問題なく実行できますが、実行効率をさらに変更する必要があります。 <br><br>select * from table a, table u ここで、a.xfuid=u.userid; <br>a はデータベースに存在しませんが、特定の条件でクエリされたテーブルです。 <div class="clear"></div>

ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート