mysql在table1上使用条件左连接

时间:2012-03-27 13:11:07

标签: mysql left-join

我想只使用mysql中第一个表的某些行进行左连接。目前我做的事情如下:

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

但是mysql会首先从table1(学生)中选择满足students.id = 6,之前连接的行吗? 如果没有,有没有办法强制mysql这样做? 感谢。

2 个答案:

答案 0 :(得分:1)

是的,试试这个:

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

答案 1 :(得分:0)

在我看来,您正在尝试优化数据库。如果查询速度不慢,并且您的测试数据集是生产数据库的合理近似,那么出于多种原因,这不是最佳实践。

话虽如此,(也许我不对,所以不理我)

我认为您试图说,“我如何通过限制数据库在查询期间查看的行数来加快速度”

执行此操作的最佳方法是确保在表格上以及要查询的字段上具有适当的索引。索引非常快。如果您尚未索引两个表的.id字段,请将这些索引添加到数据库中,这可能会解决您的问题。