質問

ようにしている参加で一部のデータと2つのテーブルが複数列あります。次に例を示します。

テーブル

ID|Desc|AAAA|BBBB|

表2 テーブル

ID|Text|ID1|ID2|ID3|

がID1,ID2、ID3に 表2 IDはら テーブル

たいなって思っててクエリを利回りの結果:

Table2.Text,
Source.Desc(ID1),
Source.AAAA(ID1),
Source.Desc(ID2),
Source.AAAA(ID2),
Source.Desc(ID3),
Source.AAAA(ID3)

いらっしゃるかと思いこの参加ができませんの構文右---またはいかないほうがよいとです。

役に立ちましたか?

解決

ない場合については、すべてソテーブルの人口は表2、まだ部分的な結果:

SELECT
    t.Desc, s1.Desc, s1.AAAAA, s2.Desc, s2.AAAAA, s3.Desc, s3.AAAA
    FROM Table2                t
        LEFT OUTER JOIN Source s1 ON t.ID1 = s1.ID
        LEFT OUTER JOIN Source s2 ON t.ID2 = s2.ID
        LEFT OUTER JOIN Source s3 ON t.ID3 = s2.ID
    WHERE t.ID=@YourIDHere

他のヒント

ることができ複数の参加にならなくもないですか?例えば:

SELECT tb.Desc, s1.Desc, s1.AAAAA, s2.Desc, s2.AAAAA, s3.Desc, s3.AAAA
FROM Table2 tb
    INNER JOIN Source s1 ON tb.ID1 = s1.ID
    INNER JOIN Source s2 ON tb.ID2 = s2.ID
    INNER JOIN Source s3 ON tb.ID3 = s2.ID

加入することが義務は、ソーステーブル、各IDです。きものをしてみunuion見るようになります。

この悪い方はテーブルのデザイン(正規化)、私はあなたを変更すれば可能です。あshoudl bea関連するテーブルの各idに別途記録してきましいと言うことができる。より効率的でも容易にコードを書対すこともございませんのテーブルの構造とalltheクエリの日に必要なID4.

三参加すべきだという:

select A.*, coalesce(B1.Text,B2.Text,B3.Text,'') as Text
from Source A
inner join Table2 B1 on B1.ID1=A.ID
inner join Table2 B2 on B2.ID2=A.ID
inner join Table2 B3 on B3.ID3=A.ID
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top