2016-10-25 27 views
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回ずつ繰り返しているということです。解決策は何ですか?

+2

ヒント: 'INNER JOIN'ではなく' CROSS JOIN'です。 –

+1

クロス結合とは、各テーブルからレコードの#を取り出し、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

答えて

2
Select 
y.ID_STORE , 
y.NAME_STORE store , 
x.ID_PRODUCT, 
x.NAME_PRODUCT product 
from 
TABLE_PRODUCT x inner join 
TABLE_STORE y 
    on x.ID_PRODUCT =y.ID_STORE 
inner join TABLE_PROD_STOR z 
    on x.ID_PRODUCT =z.ID_STORE 
関連する問題