繁体   English   中英

mysql在table1上退出条件连接

[英]mysql left join with condition on table1

我想只使用mysql中第一个表的某些行进行左联接。 目前,我正在执行以下操作:

SELECT students.* FROM students             
LEFT JOIN courses                           
ON students.id = courses.id                 
WHERE students.id = 6

但是,在进行左联接之前 ,mysql是否会首先从table1(学生)中选择满足学生的行。 如果没有,有没有办法强制mysql这样做呢? 谢谢。

是的,请尝试以下操作:

SELECT students.* FROM students             
LEFT JOIN courses                           
ON students.id = courses.id                 
HAVING students.id = 6
LIMIT 1

在我看来,您正在尝试针对数据库进行优化。 如果查询不是很慢,并且您的测试数据集是生产数据库的合理替代,那么出于多种原因,这样做并不是最佳实践。

话虽如此,(也许我不对,所以请忽略我)

我认为您试图说:“如何通过限制数据库在查询过程中查看的行数来加快处理速度”

最好的方法是确保要查询的表上的表上具有正确的索引。 索引非常快。 如果尚未为两个表的.id字段建立索引,请将这些索引添加到数据库中,这可能会解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM