我有一个关于MySQL查询的问题。我有 2 张表Products
和 Users
张,中间有 1 张桌子将它们映射到彼此Users_Products
.我想使用Users_Products
表选择所有产品+特定用户与所有产品的关系。
产品
- 编号
- 名字
用户
- 编号
- 名字
Users_Products
- user_id
- product_id
当然,我可以做SELECT * FROM Products
然后SELECT * FROM Users_Products WHERE user_id=1
然后使用双 for 循环映射它们。我只是想知道这是否可以通过 1 个查询来实现,或者我是否在这里缺少一些非常基本的东西。
您可以联接所有表并按user_id进行筛选。此查询返回属于 user.id = 1 的所有产品
select
from products p
join user_products up
on p.id = up.product_id
join users u
on u.id = up.user_id
where u.id = 1;