我对MySQL中的查询有疑问。
我有2个表Products
和Users
,其间有1个表格,可以将它们相互映射Users_Products
。
我想使用Users_Products
表格选择所有产品+特定用户与所有产品的关系。
产品
用户
Users_Products
当然我可以SELECT * FROM Products
然后SELECT * FROM Users_Products WHERE user_id=1
,然后使用双循环映射它们。我只是想知道这是否可以通过1次查询或者我是否遗漏了一些非常基本的内容。
答案 0 :(得分:2)
您可以加入所有表格并按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;