Mysql 基于另一个表显示表信息
我有三张桌子:Mysql 基于另一个表显示表信息,mysql,sql,join,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 |
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
真希望我解释得足够好!如果没有,请说。基本上,
内部连接将满足您的需要,因为您只需要用户将要参加的活动
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 ║
╚═════════╩══════════╝
基本上,内部连接将满足您的需要,因为您只需要用户将要参加的活动
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 ║
╚═════════╩══════════╝
太棒了,非常感谢你花时间做这件事。真的很感激!我会在8分钟内确认你的回答。谢谢对不起,最后一件事。稍后,我需要为用户提供删除他们将要删除的事件的能力。如果用户希望删除,我如何存储用户_events.id以供以后参考?感谢历史参考,也许您可以在名为IsDeleted
(整数)的表user\u events
上添加额外的列。默认值为零。当用户想要删除时,您将只将其值更新为一。如果你这样做的话,你的查询会有一点变化。如果您只想显示用户将要参加的活动,请添加一个过滤条件,其中a.name='JOHN'和b.IsDeleted=0
。非常直观,非常感谢您让我的生活轻松了很多!我很高兴听到你的反馈:)
太棒了,非常感谢你花时间做这件事。真的很感激!我会在8分钟内确认你的回答。谢谢对不起,最后一件事。稍后,我需要为用户提供删除他们将要删除的事件的能力。如果用户希望删除,我如何存储用户_events.id以供以后参考?感谢历史参考,也许您可以在名为IsDeleted
(整数)的表user\u events
上添加额外的列。默认值为零。当用户想要删除时,您将只将其值更新为一。如果你这样做的话,你的查询会有一点变化。如果您只想显示用户将要参加的活动,请添加一个过滤条件,其中a.name='JOHN'和b.IsDeleted=0
。非常直观,非常感谢您让我的生活轻松了很多!我很高兴听到您的反馈:)