2015-12-16 21 views
0

我加入了兩張表和類似的數據,但我希望能夠確定哪些行來自哪個表。我想我可以創建一個新的列,如果它存在於兩個表中,則'兩個',如果它存在於第一個表中但不存在於第一個表中,則存入'表1';如果存在於第二個表中則存在'表2'表,但不是第一個。我知道我需要寫一些有條件的陳述,但我不知道那會是什麼。我怎樣才能標記哪個行來自哪個表?

+0

你使用outer join還是union? – Szymon

+0

@Szymon外部連接 – Saliceran

+2

您可以使用'select column_name as myColumn',如果您使用連接,則輸出列將具有名稱「myColumn」 – Slasko

回答

2

答案的詳細信息將取決於您正在使用的特定數據庫平臺上的很多。據說,大多數數據庫平臺都支持CASE語句,它允許您根據各種條件有條件地返回值(包括靜態字符串)。

但是,更一般的情況是,您將根據與表2字段匹配的表1字段進行外連接。在您的代碼中,如果返回的表1字段爲空,表示數據來自表2,反之亦然。如果兩者都不爲空,則數據來自兩者。

你也有另一種選擇,以

 select from Table 1 
UNION select from Table 2 

然後你就可以有一個靜態字段,表示該表中的每個記錄是從,如

 SELECT 'Table 1' table, field1, field2 FROM Table1 
UNION SELECT 'Table 2' table, field1, field2 FROM Table2 

此選項可能會創造更多的工作你的代碼,但可能會減輕數據庫服務器的負擔。

可能有更多的選擇,但那些是跳出我的。

相關問題