0
を作成し、私はそれらの間のCROSS JOIN
は、製品とそれらを販売する店舗のIDと名前を表示するようにする必要があり、ここではどのように今は、私は3つのテーブルを持っているループ
TABLE_PRODUCT
の一例です
ID_PRODUCT | NAME_PRODUCT
1 | Addidas Super Star
2 | Calvin Klein BAG
TABLE_STORE
ID_STORE | NAME_STORE
1 | ThE 98
2 | C&A
TABLE_PROD_STOR
ID_STORE | ID_PROD
1 | 1
2 | 2
そして私は形式で結果を必要とする:
ID STORE | STORE | ID PRODUCT | PRODUCT |
1 | ThE 98 | 1 | Addidas Super Star |
2 | C&A | 2 | CALVIN KLEIN HAT |
私の最大の問題は、私はCROSS JOIN
を行う際に、名前がそれぞれ2回ずつ繰り返しているということです。解決策は何ですか?
ヒント: 'INNER JOIN'ではなく' CROSS JOIN'です。 –
クロス結合とは、各テーブルからレコードの#を取り出し、2 * 2 * 2 = 8個のレコードに掛け合わせることを意味します。 (製品の各レコードを取り出し、ストア内の各reocrdとペアにしてから、結果を取得してprod_storeの各reocrdとペアにします)。内部結合とは、1 = 1と2 = 2で内部結合を使用して2つのレコードしか取得できないため、ID_ProductやID_Storeなどのいくつかのキー値に関連するレコードを各テーブルから取得することを意味します。 [このブログ](https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/)は、結合タイプを視覚的に示しています。 – xQbert