我有以下結構的兩個表:尋找失蹤列
1 City_Details: 此表由所有爲每個城市適用的表和列。
Country_Name City_Name Table_Name Column_Name USA New York T1 T1C1 USA New York T1 T1C2 USA New York T1 T1C3 USA New York T2 T2C1 USA Los Angeles T2 T2C1 USA Los Angeles T2 T2C2 USA Los Angeles T2 T2C3 England London T1 T1C1 England London T3 T3C1 England London T3 T3C2
2. Max_Column_Details:此表由約可以存在的每個城市和每個表只能有最大列的所有表的信息。
Table_Name Column_Name T1 T1C1 T1 T1C2 T1 T1C3 T1 T1C4 T2 T2C1 T2 T2C2 T2 T2C3 T2 T2C4 T2 T2C5 T2 T2C6 T3 T3C1 T3 T3C2 T3 T3C3 T4 T4C1 T4 T4C2
我想編寫一個SQL查詢,僅返回每個城市中表PRESENT在表中缺少的列。例如,紐約T1有3列T1C1,T1C2,T1C3。 T1最多可以有四列,即T1C1,T1C2,T1C3,T1C4。因此,紐約表T1的缺失列是T1C4。同樣,其他城市其他表的缺失列也是需要的。因此,最終應該是爲下:
Country_Code City_Code Table_Name Column_Name USA New York T1 T1C4 USA New York T2 T2C2 USA New York T2 T2C3 USA New York T2 T2C4 USA New York T2 T2C5 USA New York T2 T2C6 USA Los Angeles T2 T2C4 USA Los Angeles T2 T2C5 USA Los Angeles T2 T2C6 England London T1 T1C2 England London T1 T1C3 England London T1 T1C4 England London T3 T3C3
我試着用減去一些疑問,EXCEPT存在,不存在的,但還是我不能夠得到rquired結果。我不擅長SQL。請幫忙。
你有沒有嘗試什麼嗎?請包含您的SQL以及您獲得的結果。 –
@LutzHorn是的。我嘗試了以下,但沒有奏效。 SELECT DISTINCT Country_Name,City_Name,Table_Name,Column_Name FROM City_Details WHERE EXISTS(SELECT * FROM Max_Column_Details WHERE City_Details.table_name = Max_Column_Details.table_name and City_Details.column_name = Max_Column_Details.column_name)minus(SELECT * FROM City_Details)order by 1,2,3; – sds
請編輯您的問題以包含SQL。不要將代碼放入評論中。 –