php - 忽略 Where 并优先考虑 Order By

标签 php mysql sql

假设,我有以下表格

伙计们

| 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/

相关文章:

php - MYSQL PHP Foreach 语句只提交第一个插入语句

java - 在 spring-boot jpa hibernate 中 >4<24 后与 Db 的连接终止

mysql - 导入/恢复 MySQL 数据库?

java - 使用 Java 从本地 SQLite 数据库读取表情符号

sql - 如何修剪 PostgreSQL 数据库中所有表中每一列的尾随空格

php - htaccess重定向后从移动网站访问父网站的文件夹

PHP MySQL OUTFILE 命令

php - Mysql 错误处理

php - 合并数组,将值相加

sql - 为什么我的日期字段的 SQL 查询有时需要 trunc() (Oracle)?