忽略在哪里并优先排序

Ang*_*ger 1 php mysql sql

假设,我有以下表格

GUYS

| ID         | 
|:-----------|
| 1          |  
| 2          | 
| 3          |   
Run Code Online (Sandbox Code Playgroud)

衬衫

| ID         | GUYS_ID     | color        |
|:-----------|------------:|:------------:|
| 1          |           1 |     red     
| 2          |           1 |     red    
| 3          |           3 |     red     
| 4          |           3 |     red      
| 5          |           3 |     red    
Run Code Online (Sandbox Code Playgroud)

我使用此查询加入这些表

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;
Run Code Online (Sandbox Code Playgroud)

这只获取其ID为ON SHIRT的GUYS

想知道是否有可能获取所有与SHIRT无关的GUYS?

实现这样的结果,

| ID         | color       |
|:-----------|------------:|
| 1          |         red |   
| 1          |         red |
| 2          |             |
| 3          |         red |    
| 3          |         red |    
| 3          |         red |
Run Code Online (Sandbox Code Playgroud)

Shn*_*ugo 5

你的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
Run Code Online (Sandbox Code Playgroud)