假设,我有以下表格
伙计们
| ID |
|:-----------|
| 1 |
| 2 |
| 3 |
衬衫
| ID | GUYS_ID | color |
|:-----------|------------:|:------------:|
| 1 | 1 | red
| 2 | 1 | red
| 3 | 3 | red
| 4 | 3 | red
| 5 | 3 | red
我使用这个查询加入这些表
SELECT a.id, b.color
FROM GUYS a
LEFT JOIN SHIRT b
ON a.ID=b.GUYS_ID
WHERE b.color='red'
ORDER BY a.id ASC;
这只会获取 id ON SHIRT 的 GUYS
想知道是否可以获取所有 GUYS,包括哪些与 SHIRT 无关?
为了达到这样的结果,
| ID | color |
|:-----------|------------:|
| 1 | red |
| 1 | red |
| 2 | |
| 3 | red |
| 3 | red |
| 3 | red |
最佳答案
你的 WHERE 是严格的:
没有衬衫的人不能穿红色衬衫;-)
SELECT a.id, b.color
FROM GUYS a
LEFT JOIN SHIRT b ON a.ID=b.GUYS_ID
WHERE b.color IS NULL OR b.color='red'
ORDER BY a.id ASC
关于php - 忽略 Where 并优先考虑 Order By,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32816557/