显示基于另一个表的表信息

时间:2013-03-17 15:22:55

标签: mysql sql join

我有三张桌子:

users:
--------------------
id | name | 
 1 | john |
 2 | bob  |

events
--------------------
id |  name   | location
 1 | concert | moon
 2 | sport   | ukraine

user_events
--------------------
id |  userid | eventid
 1 |   1     |   1 
 2 |   1     |   2 
 3 |   2     |   2 

我正在尝试显示用户要去的事件。我想检索并仅显示事件信息,但仅显示某个用户要去的事件的信息。

如何列出John参加的活动中的活动信息?

所以输出结果为:

johns events
--------------------
concert | moon
sport   | ukraine

真的希望我已经解释得这么好了!如果没有请说。

1 个答案:

答案 0 :(得分:1)

基本上,INNER JOIN就足够了,因为你只想要用户参加的活动。

SELECT  c.name, c.location
FROM    users a
        INNER JOIN user_events b
            ON a.ID = b.userID
        INNER JOIN events c
            ON b.eventID = c.ID
WHERE   a.name = 'JOHN'

要进一步了解联接,请访问以下链接:

输出

╔═════════╦══════════╗
║  NAME   ║ LOCATION ║
╠═════════╬══════════╣
║ concert ║ moon     ║
║ sport   ║ ukraine  ║
╚═════════╩══════════╝