0

A.

SELECT * 
FROM `photo` 
      INNER JOIN `photo_comment` 
          ON `photo`.id = `photo_comment`.photo_id 
LIMIT 0,2

B.

SELECT * 
FROM (SELECT * FROM `photo_comment`) AS T,`photo` 
WHERE T.photo_id = `photo`.id 
LIMIT 0,2

C.

SELECT * 
FROM `photo_comment`,`photo` 
WHERE `photo`.id=`photo_comment`.photo_id 
LIMIT 0,2

次のクエリの違いは何ですか。実行する最も効果的な方法はどれですか?

助けと啓発を前もって感謝します。

4

2 に答える 2

1

最初のクエリと 3 番目のクエリは同じです。最初のクエリはANSI SQL-92format を使用し、3 番目のクエリ (古いもの) はSQL-89format を使用します。

2 番目のクエリは、最初のクエリをスキャン して他のテーブルと結合するため、遅くなります (完全に遅くなるわけではありません)。photo_comment

于 2012-10-22T11:26:46.543 に答える
0

1 番目と 3 番目のクエリは似ています。2番目は、一時テーブルを使用して内部選択の結果を保存するため、最も遅いものです。

于 2012-10-22T11:24:38.867 に答える