三张表之间的查询

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

以上是关于三张表之间的查询的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL三张表关联查询请教

oracle 想把三张表关联起来,怎么关联?

如何在 laravel eloquent 中查询三张表

关于学生,课程,选课三张表的sql查询

Ajax案例:三级联动查询员工的信息(三张表进行内连接)

ORACLE中如何多表关联查询。如有A、B、C三张表,A表字段a和B表字段b以及C表字段c关联,写出查询语句