M-to-M关系MySQL查询

时间:2018-03-07 20:44:01

标签: mysql

我对MySQL中的查询有疑问。 我有2个表ProductsUsers,其间有1个表格,可以将它们相互映射Users_Products。 我想使用Users_Products表格选择所有产品+特定用户与所有产品的关系。

产品

  • ID
  • 名称

用户

  • ID
  • 名称

Users_Products

  • USER_ID
  • PRODUCT_ID

当然我可以SELECT * FROM Products然后SELECT * FROM Users_Products WHERE user_id=1,然后使用双循环映射它们。我只是想知道这是否可以通过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;