仅过滤属于第3表中某些内容的用户

时间:2012-06-25 15:22:11

标签: mysql sql

这些是我的表格:

表'用户'

ID      NAME     AGE 
01      John     22
02      Gloria   27

表'城市'

ID    USER_ID    CITY
22    01         Sacramento
23    02         Phoenix

表'HOBBIES'

ID     USER_ID   HOBBY
88     01        swimming
89     01        reading
90     02        reading

好的,我们有两个人:约翰来自萨克拉门托,喜欢游泳和阅读。 Gloria来自凤凰城,只喜欢阅读。

我知道如何加入前两个表:

SELECT * FROM users INNER JOIN cities ON users.id = cities.user_id

但我如何加入“爱好”表并只显示喜欢游泳的用户?

非常感谢, 马蒂亚斯

3 个答案:

答案 0 :(得分:4)

您只需在最后一个表格中添加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'

答案 1 :(得分:1)

继续加入并过滤结果:

e.g。

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'              

答案 2 :(得分:0)

选择u.id,u.name,c.city,h.hobby 来自用户你 内联盟城市c 在u.id = c.id上 内心的爱好h 在u.id = h.id to_lower(h.hobby)='游泳'