假设我有两个表:FRUITS
和USERS
。
fruits
-------------
id | name |
-------------
1 | Apple |
2 | Orange |
3 | Pear |
-------------
users
-------------------
id | name | fruit |
-------------------
1 | John | 3 |
2 | Bob | 2 |
3 | Adam | 1 |
-------------------
我使用以下查询(在this question中回答)来查询具有正确水果名称的用户,而不仅仅是水果ID
:
SELECT u.id, u.name, f.name FROM users u JOIN fruits f ON u.fruit = f.id
但是,上述查询仅返回具有有效水果ID
的用户。如何修改此查询以返回包含无效/空果实ID
的用户?这样水果名称应为NULL
。
答案 0 :(得分:2)
使用left join
SELECT
u.id,
u.name,
f.name
FROM users u
LEFT JOIN fruits f ON u.fruit = f.id
答案 1 :(得分:2)
您可以使用left join
:
SELECT u.id, u.name, f.name
FROM users u LEFT JOIN
fruits f
ON u.fruit = f.id;
这将保留users
表中的所有行,即使是fruits
中包含不匹配值的行。
答案 2 :(得分:2)
使用'LEFT JOIN':
选择 u.id ,u.name ,f.name FROM 用户你 LEFT JOIN fruit f ON u.fruit = f.id
答案 3 :(得分:2)
SELECT u.id, u.name, f.name FROM users u
LEFT JOIN fruits f ON u.fruit = f.id
了解LEFT JOIN
here。