このような 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>
|
ログイン後にコピー