0
我想弄清楚如何編寫一個SQL查詢返回兩個其他SELECT語句的結果,每個SELECT語句都有自己的JOIN。這裏是場景:單選擇組合多個JOIN
表1可能在T1Number和/或T1State列中有NULL值。表2可能有具有匹配號碼或狀態的行。我想要Table1中的所有行,但想要在狀態匹配時填入任何具有T2Number的NULL T1Number,並且在數字匹配時填充任何具有T2State的NULL T1State。我不想從表2的行不具有匹配狀態或號碼:
Table1: Table2:
Name T1Number T1State T2Number T2State
---- -------- ------- -------- -----
Joe 1 NULL 1 MA
Bob NULL CA 2 CA
Dan NULL NULL 3 FL
Sam 4 NY 4 NY
Ray 5 TX 8 PA
所以我有一個SELECT語句來獲取編號:
SELECT
Table1.Name,
Table1.T1Number,
Table1.T1State,
Table2.T2Number,
Table2.T2State
FROM Table1
INNER JOIN Table2 ON Table2.T2State = Table1.T1State
WHERE (Table1.T1Number IS NULL OR Table1.T1State IS NULL)
Result:
Name T1Number T1State T2Number T2State
---- -------- ------- -------- -------
Bob NULL CA 2 CA
而另一個SELECT語句來獲得國家:
SELECT
Table1.Name,
Table1.T1Number,
Table1.T1State
Table2.T2Number
Table2.T2State
FROM Table1
INNER JOIN Table2 ON Table2.T2Number = Table1.T1Number
WHERE (Table1.T1Number IS NULL OR Table1.T1State IS NULL)
Result:
Name T1Number T1State T2Number T2State
---- -------- ------- -------- -------
Joe 1 NULL 1 MA
如何編寫一個組合的SELECT語句,給我以下所需的結果?
Name Number State
---- ------ -----
Joe 1 MA
Bob 2 CA
Dan NULL NULL
Sam 4 NY
Ray 5 TX
我想我需要一個包含SELECT語句,做了左表1和上述查詢的工會之間的連接,但我知道這是不是我做它的方式更容易。提前謝謝了。
完美 - 這就是訣竅。謝謝你的幫助。 – MasterOfNone