我有三个表,其中2个是常规数据表,1个是多对多联结表。具有多对多关系的联结表上的SQL连接
两个数据表:
table products
product_id | product_name | product_color
-----------------------------------------
1 | Pear | Green
2 | Apple | Red
3 | Banana | Yellow
和
table shops
shop_id | shop_location
--------------------------
1 | Foo street
2 | Bar alley
3 | Fitz lane
我有一个包含了shop_id
的和product_id
的结合表:
table shops_products
shop_id | product_id
--------------------
1 | 1
1 | 2
2 | 1
2 | 2
2 | 3
3 | 2
3 | 3
我想从店铺shop_id 3中选择产品的数据。我尝试了很多例子在这里与连接,左连接,内连接,但我只是不知道我在这里做什么,什么是错的。查询我有,但只是返回的所有产品,无论他们是否在指定的店铺是:
SELECT products.product_name, products.product_color
FROM products
LEFT OUTER JOIN shops_products
ON products.product_id = shops_products.product_id
AND shops_products.shop_id = 3
LEFT OUTER JOIN shops
ON shops_products.shop_id = shops.shop_id
预期输出如下:
product_name | product_color
----------------------------
Apple | Red
Banana | Yellow
这是MySQL的,谢谢任何帮助,我真的很感激它。
真是个好的答案! –
谢谢!这解决了我的问题,并帮助我理解解决方案。再次感谢,我会在5分钟内接受它,当它让我:) –