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