Ras*_*lam 17 sql performance join
我想知道哪一个最适合下面所述的两个查询之间的性能,还是它们的表现相同?
第一个:[没有WHERE子句,只是和ON]
SELECT related_tabid AS tabid, label, t.name
FROM relatedlists r
INNER JOIN tab t
ON t.tabid = r.tabid
AND t.name = 'Leads'
AND r.is_active=1 and r.related_tabid <> 0
AND t.is_active=1
ORDER BY label
Run Code Online (Sandbox Code Playgroud)
第二个:[使用WHERE子句,AND与where相关联而不是ON]
SELECT related_tabid AS tabid, label, t.name
FROM relatedlists r
INNER JOIN tab t
ON t.tabid = r.tabid
WHERE t.name = 'Leads'
AND r.is_active=1 and r.related_tabid <> 0
AND t.is_active=1
ORDER BY label
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 11
两个查询都是相同的,因为使用的连接是INNER JOIN
.INNER JOIN
基本上它只过滤在另一个表上至少匹配的行.即使这两个表是交换的,结果仍然是相同的.
但是如果您通过它们加入它们LEFT JOIN
,则两个查询彼此不同并且将产生不同的结果.