我有三個表,其中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分鐘內接受它,當它讓我:) –