【发布时间】:2020-11-04 16:24:35
【问题描述】:
我有这两张桌子:
用户
+----+-------+
| id | name |
+----+-------+
| 1 | John |
+----+-------+
| 2 | Peter |
+----+-------+
| 3 | Lucas |
+----+-------+
礼物
+----+--------+----------+----------+
| id | boy_id | type | quantity |
+----+--------+----------+----------+
| 1 | 1 | clothing | 3 |
+----+--------+----------+----------+
| 2 | 2 | toy | 1 |
+----+--------+----------+----------+
| 3 | 2 | clothing | 2 |
+----+--------+----------+----------+
我试图查询“男孩收到的礼物”,如下所示:
+-------+----------+----------+
| name | type | quantity |
+-------+----------+----------+
| John | clothing | 3 |
+-------+----------+----------+
| Peter | toy | 1 |
+-------+----------+----------+
| Peter | clothing | 2 |
+-------+----------+----------+
| Lucas | "" | 0 |
+-------+----------+----------+
但我只知道如何通过这样的查询获取相关数据:
SELECT u.name, g.type, g.quantity FROM gifts g INNER JOIN users u ON g.boy_id = u.id
所以,由于卢卡斯不在 gifts 表中,我得到以下信息:
+-------+----------+----------+
| name | type | quantity |
+-------+----------+----------+
| John | clothing | 3 |
+-------+----------+----------+
| Peter | toy | 1 |
+-------+----------+----------+
| Peter | clothing | 2 |
+-------+----------+----------+
那么,如果男孩没有收到礼物,我如何将 peter 包含在结果中,用 "" 和零填写类型和数量?
【问题讨论】:
标签: mysql sql left-join sql-null