Mysql 查询两个表并在第二个表中替换一个表中的值
假设我有两张这样的桌子:Mysql 查询两个表并在第二个表中替换一个表中的值,mysql,sql,Mysql,Sql,假设我有两张这样的桌子: fruits ------------- id | name | ------------- 1 | Apple | 2 | Orange | 3 | Pear | ------------- users ------------------- id | name | fruit | ------------------- 1 | John | 3 | 2 | Bob | 2 | 3 | Adam | 1 | -----
fruits
-------------
id | name |
-------------
1 | Apple |
2 | Orange |
3 | Pear |
-------------
users
-------------------
id | name | fruit |
-------------------
1 | John | 3 |
2 | Bob | 2 |
3 | Adam | 1 |
-------------------
我想查询这两个表,并在结果中获取用户ID、他的姓名和水果名称(users表中的水果ID对应于水果的ID),如下所示:
我试图用下面的一个问题将这两个问题联系起来,但迄今为止没有成功
"SELECT * FROM users, fruits WHERE fruits.id = fruit"
提前感谢。您需要像这样加入水果桌:
SELECT u.id, u.name, f.name FROM users u JOIN fruits f ON u.fruit = f.id
请参见一个工作示例,尝试以下操作:
SELECT a.id, a.name, b.name FROM
users a JOIN fruits b
ON a.fruit = b.id
我们是否可以修改查询以同时包含某些用户没有指定水果ID的记录?上面的查询只返回匹配的行。如果用户没有水果,则查询仍应返回此行,“名称”列中的NULL。这有意义吗?您需要使用
左连接
,请参阅此更新的小提琴
select a.id,a.name,b.name as fruit
from users a
join friuts b
on b.id=a.fruit
SELECT a.id, a.name, b.name FROM
users a JOIN fruits b
ON a.fruit = b.id
SELECT u.id, u.name, f.name
FROM users u
inner join fruits f
ON f.id = u.fruit