0
への参加:SQL Serverの次のような問題で私を助けてくださいテーブル
SQL Server 2012のデータベース
表1(T1)
*******************************
| pk_Id | text | fk_t2 | fk_t3|
*******************************
| 1 |text1 | 1 | null|
*******************************
| 2 |text2 | 2 | null|
*******************************
| 3 |text3 | null | 1 |
*******************************
| 4 |text1 | null | 2 |
*******************************
表2(T2)を
***************
| pk_Id | col1|
***************
| 1 |5285 |
***************
| 2 |6621 |
***************
表3(T3)
************************
| pk_Id | col1 | fk_t2 |
************************
| 1 | text1| 1 |
************************
| 2 | text2| 1 |
************************
| 3 | text1| 2 |
************************
は私が必要なもの: T2.Col1 T3.Col1 T1.Text
ご覧のように、T2はT3と関連し、そして、T2とT3の両方があるさT1に関連しています。は、テキスト列がt2の値であり、fk_t3がnull(私は悪い設計であることがわかります)であり、テキスト列がt3の値である場合、fk_t2はt2の値であるとき、両方のテーブル(t2とt3)ヌル。
私は動作しないことを知っている: (何も返しません)
select t2.col1, t3.col1, t1.text
from t2
inner join t1 on t2.pk=t1.fk_t2
inner join t2 on t3.pl=t1.fk_t3
t3.col1
select t2.col1, t3.col1, t1.text
from t2
left join t1 on t2.pk = t1.fk_t2
left join t3 on t3.pl = t1.fk_t3
でヌルリターンはどうもありがとうございました!
はあなたに感謝します!あなたのソリューション(合体)はt3.col1を返さず、単にt2.col1とtogheterを混ぜてください。私は別の襟にt2.col1とt3.col1を持っている必要があります。マビ、私は理解していない:)。私は返信でt1.text、t2.col1、t3.col1が必要です – gligom
それからやります。私は答えを更新しました。しかし、それらのうちの1つはあなたの質問によればヌルになります。そして、あなたはテーブルからでも、ヌル以外の値だけを必要と思っていました。しかし、更新されたクエリは列を分離します。私が作った最初のものは –
でした。結果ではt3.col1はすべてnullです。 – gligom