Mysql 仅筛选属于第三个表中某个内容的用户

Mysql 仅筛选属于第三个表中某个内容的用户,mysql,sql,Mysql,Sql,这些是我的桌子: 表“用户” ID NAME AGE 01 John 22 02 Gloria 27 表“城市” ID USER_ID CITY 22 01 Sacramento 23 02 Phoenix 表“爱好” ID USER_ID HOBBY 88 01 swimming 89 01 reading 90 02

这些是我的桌子:

表“用户”

ID      NAME     AGE 
01      John     22
02      Gloria   27
表“城市”

ID    USER_ID    CITY
22    01         Sacramento
23    02         Phoenix
表“爱好”

ID     USER_ID   HOBBY
88     01        swimming
89     01        reading
90     02        reading
好的,我们有两个家伙:约翰来自萨克拉门托,喜欢游泳和读书。 格洛里亚来自凤凰城,只喜欢读书

我知道如何连接前两个表:

SELECT * FROM users INNER JOIN cities ON users.id = cities.user_id
但我如何才能加入“爱好”列表,只显示喜欢游泳的用户

非常感谢,
Matthias

您只需在最后一个表中添加一个
JOIN
,并添加一个
WHERE
子句

SELECT * 
FROM users  
INNER JOIN cities  
    ON users.id = cities.user_id
INNER JOIN hobbies
    ON users.id = hobbies.USER_ID
WHERE Hobbies.Hobby = 'swimming'

您只需在最后一个表中添加一个
JOIN
,并添加一个
WHERE
子句

SELECT * 
FROM users  
INNER JOIN cities  
    ON users.id = cities.user_id
INNER JOIN hobbies
    ON users.id = hobbies.USER_ID
WHERE Hobbies.Hobby = 'swimming'

继续加入并过滤结果:

e、 g


继续加入并过滤结果:

e、 g


选择u.id、u.name、c.city、h.hobby 来自用户u 内连接城市c 在u.id=c.id上 内连接h 在u.id=h.id上
何处降低(h.hobby)=“游泳”

选择u.id、u.name、c.city、h.hobby 来自用户u 内连接城市c 在u.id=c.id上 内连接h 在u.id=h.id上
在哪里降低(h.爱好)=“游泳”

我自己也说得再好不过了!我自己也说得再好不过了!