我需要确切知道此查询的区别:
第一个:
SELECT * FROM cc_inscription
LEFT JOIN cc_paiement
ON cc_paiement.inscription_id = cc_inscription.inscription_id
WHERE cc_inscription.course_id=1
ORDER BY cc_inscription.inscription_id ASC;
(4107 records, 19s execution)
第二名:
SELECT * FROM cc_inscription, cc_paiement
WHERE cc_paiement.inscription_id = cc_inscription.inscription_id
AND cc_inscription.course_id=1
ORDER BY cc_inscription.inscription_id ASC;
(3780 records, 0.400s)
我不明白为什么第一张记录有4107条记录而第二张记录是3780条记录...
以及如何优化第一个查询?19年代真是太糟糕了!
谢谢您帮忙 !
即使表中没有相关记录,带有的第一个查询也会LEFT JOIN
为您提供所有记录。如果没有匹配的记录,则该列将返回该行。cc_inscription
cc_paiement
cc_paiement
NULL
第二个查询将仅cc_inscription
在中有相关记录的情况下为您提供表中的记录cc_paiement
。
通过删除单词,可以使第一个查询与第二个查询相同LEFT
。
您可以通过创建正确的索引来优化查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句