2
假設我在SQL兩個表:如何將兩個表(具有相同的模式)合併到一個具有不同值並指示每行來自哪個表的表中?
Table_Alpha Table_Bravo
Id | Name Id | Name
---+------ ---+-----
1 | Alice 1 | Charlie
2 | Bob 2 | Bob
3 | Charlie 3 | Dorothy
我想這兩個表合併成一個單一的表,避免重複和跟蹤其表的每個名字從像這樣來了:
Result
Name | Alpha | Bravo
-------+-------+------
Alice | 1 | 0
Bob | 1 | 1
Charlie| 1 | 1
Dorothy| 0 | 1
我想,我想要的查詢將是這個樣子:
SELECT Name, 1 AS Alpha, 0 AS Bravo FROM Table_Alpha
UNION
SELECT Name, 0 AS Alpha, 1 AS Bravo FROM Table_Bravo;
然而,上面的查詢將返回兩行對每個南e出現在兩張表中。我該如何編寫查詢,以便爲每個不同的名稱返回一行?
這符合OP的請求如果你添加「按名稱分組」。 – 2013-05-08 20:07:38
@DaveJohnson - 你說得對。我已經更新了答案。謝謝 – 2013-05-08 20:08:57
非常接近!我正在使用的SQL服務器要求我添加一個「GROUP BY」子句,因此我放棄了「DISTINCT」關鍵字。 – 2013-05-08 20:11:30