0
我加入了兩張表和類似的數據,但我希望能夠確定哪些行來自哪個表。我想我可以創建一個新的列,如果它存在於兩個表中,則'兩個',如果它存在於第一個表中但不存在於第一個表中,則存入'表1';如果存在於第二個表中則存在'表2'表,但不是第一個。我知道我需要寫一些有條件的陳述,但我不知道那會是什麼。我怎樣才能標記哪個行來自哪個表?
我加入了兩張表和類似的數據,但我希望能夠確定哪些行來自哪個表。我想我可以創建一個新的列,如果它存在於兩個表中,則'兩個',如果它存在於第一個表中但不存在於第一個表中,則存入'表1';如果存在於第二個表中則存在'表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
此選項可能會創造更多的工作你的代碼,但可能會減輕數據庫服務器的負擔。
可能有更多的選擇,但那些是跳出我的。
你使用outer join還是union? – Szymon
@Szymon外部連接 – Saliceran
您可以使用'select column_name as myColumn',如果您使用連接,則輸出列將具有名稱「myColumn」 – Slasko