0

一种。

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

第一个查询和第三个查询是一样的。第一个查询使用ANSI SQL-92格式,而第三个查询(旧的)使用SQL-89格式。

第二个查询较慢(但并非完全较慢),因为它扫描第photo_comment 一个并将其与另一个表连接。

于 2012-10-22T11:26:46.543 回答
0

第一个和第三个查询类似。第二个是最慢的,因为使用临时表来存储内部选择的结果。

于 2012-10-22T11:24:38.867 回答