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
第二个:[使用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
Joh*_*Woo 11
两个查询都是相同的,因为使用的连接是INNER JOIN.INNER JOIN基本上它只过滤在另一个表上至少匹配的行.即使这两个表是交换的,结果仍然是相同的.
但是如果您通过它们加入它们LEFT JOIN,则两个查询彼此不同并且将产生不同的结果.