作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 LEFT JOIN 和 GROUP BY 组合具有一对多映射的表时遇到问题。
我有一个带有唯一 ID 的下表(在说明性示例中,这是 house_number)
房屋:
|house_number| bedrooms|
|0 | 4 |
|1 | 3 |
|2 | 1 |
我想使用唯一 ID 与第二个表进行 LEFT JOIN,其中第二个表可能有也可能没有每个唯一 ID 的多个条目。例如,
居住者:
| house_number | occupant_id | type |
| 0 | 3 | 19 |
| 0 | 1 | 20 |
| 0 | 2 | 21 |
| 2 | 7 | 20 |
现在我想要实现的是每个门牌号只有一个条目,但在 LEFT JOIN 中优先考虑类型为 20 的居住者,同时保留那些没有列出任何居住者的房屋,例如,
|house_number| bedrooms| occupant_id | type |
|0 | 4 | 1 | 20 |
|1 | 3 | null | null |
|2 | 1 | 7 | 20 |
我可以使用 GROUP BY 实现每个房屋只有一个条目,但是,我需要确保随它返回的占用行(如果存在)具有 type = 20
。
如果我只是使用 WHERE (type = 20)
,那么我不会得到 house_number = 1 的返回条目。
我将如何进入决赛 table ?
最佳答案
尝试 WHERE (type = 20 OR type is null)
条件怎么样?
关于mysql - 将 LEFT JOIN 与 GROUP BY 组合,同时还包括 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11031643/
我是一名优秀的程序员,十分优秀!