我有n個表格全部具有相同的字段:Username
和Value
。同一個用戶名可以在每個表上有多個寄存器,但組合Username/Value
在每個表上都是唯一的。T-SQL中表格元素之間的邏輯AND
我想將表連接成一個表,其中包含所有具有所有不同(用戶名/值)對的所有表上出現的用戶。
例
表A:
{(User1,Value1);(User1,Value2);(User2,Value2);(User3,Value4)]
表B:
{(User1,Value4);(User3,Value5)]
表C:
{(User1,Value5);(User1,Value2);(User2,Value7);(User3,Value8)]
希望的輸出
Table D: {(User1,Value1);(User1,Value2);(User1,Value4);(User1,Value5);(User3,Value4);(User3,Value5);(User3,Value8)}
我現在做多連接(用perl)這樣
SELECT *
INTO $target_table
FROM (SELECT *
FROM $table1
WHERE bname IN (SELECT DISTINCT bname FROM $table2)
UNION
SELECT *
FROM $table2
WHERE bname IN (SELECT DISTINCT bname FROM $table1)
) UN
,然後做第三個表和target_table
等之間的相同加盟,但我認爲這應該是一個更好的辦法。
任何提示?
'SELECT * FROM一個UNION SELECT *從B UNION SELECT ... * FROM n;' –
如果我使用UNION,來自USER2的元素也出現在fina上l表 – DrNoone
對不起,我沒有意識到這個要求。 –