三张表之间的查询
Posted
技术标签:
【中文标题】三张表之间的查询【英文标题】:Query between three tables 【发布时间】:2015-10-20 10:30:34 【问题描述】:我有 3 张桌子。
images
- image_id .. 等
users
- user_id .. 等
favs
- user_id, image_id
所以现在我想当用户登录他的帐户并点击按钮My favs
来显示他所有的收藏。这里对mysql的查询是什么?
【问题讨论】:
您是否尝试构建查询?如果是,请发布。 这是 combine-two-tables-that-have-no-common-fields 或 sql-inner-join-more-than-two-tables 的副本 我不是。我不知道具体如何。使用什么 JOIN,为什么要使用那个连接,连接是如何工作的。我想要的是?所以我需要选择favs
中的所有images
以及user_id=1
的位置?
【参考方案1】:
select images.image_id, ... from images
inner join favs on images.image_id = favs.image_id
inner join users on users.user_id = favs.user_id
where users.user_id = [...]
如果您不需要来自users
的任何数据,则不需要最后的连接,您可以将最后一行更改为where favs.user_id = [...]
这可能有助于您了解哪些联接做什么:
【讨论】:
我在此加入时出错inner join favs on images.user_id = favs.image_id
->` 'on Clause' 中的未知列 'images.user_id' .. 我在表 images
中没有 user_id 列/跨度>
@John:将 images.user_id = favs.image_id
更改为 images.image_id = favs.image_id
抱歉,我已将查询编辑为inner join favs on images.image_id = favs.image_id
试过了,也没用。但就像这样工作images.image_id = favs.user_id
以上是关于三张表之间的查询的主要内容,如果未能解决你的问题,请参考以下文章