私は3つのテーブルを持っています。そのうちの2つは通常のデータ・テーブルであり、1は多対多ジャンクション・テーブルです。多対多リレーションシップのジャンクション・テーブルに対するSQLジョイン
2つのデータテーブル:
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で買い物をしている商品からデータを選択するここではジョイン、左ジョイント、インナージョイントがありますが、ここで何をやっているのか、何がうまく行っているのか分かりません。私が持っていたが、彼らは指定されたお店にある場合だけに関係なく、すべての製品を返されたクエリは以下の通りです:
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分でそれを受け入れる:) –