2017-03-06 14 views
0

私はアイテムの詳細joinテーブルを使用してデータを取得する方法私はcode_1とcode_2を取得する場合

唯一のコード名を返します。クエリの上
TableA     TableB 
--------------------  ------------------------------------- 
code_id code_name   item_id item_name code_1 code_2 
--------------------  ------------------------------------- 
    1  AAA    1  apple  1  2 
    2  BBB    2  orange  1  1  
--------------------  ------------------------------------- 

Dim query as String = "SELECT item_name, TableA.code_name 
         FROM TableB 
         LEFT JOIN TableA 
         ON TableB.code_1 = TableA.code_id 
         WHERE item_name = apple" 

Result 
----------------------- 
item_name code_name 
----------------------- 
apple  AAA 
----------------------- 

を格納するためのコードを格納するための表Aと表Bはどのように、持っていますか?

Result that I want 
---------------------------- 
item_name code_1 code_2 
---------------------------- 
    apple  AAA  BBB 
---------------------------- 
+0

をretriveしたい列あなたのSELECTで指定する必要があります? – Strawberry

+0

@vbnewbieあなたはcode_1フィールドにのみ参加しました。あなたはcode_2にも参加する必要があります。 – Whencesoever

+0

@JanWalczak code_2に参加するには? item_name、TableA.code_name AS 'code_1'、TableA.code_name AS 'code_2'を選択しますか? – vbnewbie

答えて

1

あなたは、あなたが第3のコードを追加したらどう

SELECT item_name, A.code_name, B.code_name FROM TableB WHERE item_name = 'apple' 
LEFT JOIN TableA A ON TableB.code_1 = TableA.code_id 
LEFT JOIN TableA B ON TableB.code_2 = TableA.code_id 
+0

結果はapple、AAA、1,2になります。コード番号の代わりにapple、AAA、BBBを取得するにはどうすればよいですか? – vbnewbie

+0

私の回答は – berthos

+0

でしたが、テーブルの構造は正しくありません。テーブルBには「コード」しかなく、ピボットを使用して行ではなく列を取得する必要があります。あなたは新しいcode_nameが必要なときに何をしますか?新しい列code_3を追加しますか? – berthos

2
SELECT S1.item_name, U.code_name 
    FROM tableA U 
    JOIN tableB S1 ON (S1.code_1 = U.code_id) 
    JOIN tableB S2 ON (S2.code_2 = U.code_id) 
WHERE item_name = apple" 
関連する問題