以下查询之间有什么区别。这是最有效的执行方式?

时间:2012-10-22 11:21:53

标签: mysql

一个。

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

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

下进行。

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

以下查询之间有什么区别?这是最有效的执行方式吗?

提前感谢任何帮助和启发。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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