gpt4 book ai didi

mysql - 对相同结果的不同查询?

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:02 24 4
gpt4 key购买 nike

我需要确切地知道这个查询的区别:

第一:

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_paiement 中有相关记录,第二个查询只会为您提供表 cc_inscription 中的记录。

您可以通过删除单词 LEFT 使第一个查询与第二个查询相同。

您可以通过创建正确的索引来优化您的查询。

关于mysql - 对相同结果的不同查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25162231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com