我有以下SQL查询,我每个站点只返回一个单元,每个站点应该有10-20个单元:
SELECT site.*, units.*
FROM site
LEFT JOIN units
ON site.id=units.id
WHERE site.submitted='1' AND unit.color ='Green'
ORDER BY site.time DESC
LIMIT 0,100;
答案 0 :(得分:1)
我的猜测是WHERE
子句过早地过滤了您希望在结果集中出现的记录。尝试将WHERE
逻辑移到ON
子句中:
SELECT s.*, u.*
FROM site s
LEFT JOIN units u
ON s.id = u.id AND
u.color = 'Green'
WHERE s.submitted = 1
ORDER BY s.time DESC
LIMIT 0, 100;
我在查询中引入了别名(例如u
的{{1}}和units
的{{1}}),这有助于简化阅读。