我知道這會導致一個模棱兩可的錯誤,因爲Name在兩個表中都存在。但是 我想從這兩個表中選擇名稱。名稱是t_1和t_2中的一列。是否可以從兩個表中選擇?有沒有辦法讓我選擇兩個表之間的名稱,並返回一列數據?此查詢可能嗎? SELECT FROM 2 tables like
SELECT Name
FROM t_1, t_2
WHERE Name LIKE '%' + @USER + '%'
我知道這會導致一個模棱兩可的錯誤,因爲Name在兩個表中都存在。但是 我想從這兩個表中選擇名稱。名稱是t_1和t_2中的一列。是否可以從兩個表中選擇?有沒有辦法讓我選擇兩個表之間的名稱,並返回一列數據?此查詢可能嗎? SELECT FROM 2 tables like
SELECT Name
FROM t_1, t_2
WHERE Name LIKE '%' + @USER + '%'
你可以試試UNION
;
SELECT Name
FROM t_1
WHERE Name LIKE '%' + @USER + '%'
UNION
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
注意,UNION ALL
也可以使用,如果存在的話,這也將返回相同名稱的多個實例。使用符合您的要求的任何一個。
謝謝,10分鐘後,我可以接受這個答案 –
不用擔心,謝謝。 – William
SELECT Name
FROM t_1
WHERE Name LIKE '%' + @USER + '%'
UNION ALL
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
你需要使用UNION
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
union
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
可以使用別名結合。
SELECT t1.Name AS 'NAME-T1', t2.Name AS 'NAME-T2'
FROM t_1 AS t1, t_2 AS t2
WHERE t1.Name LIKE '%' + @USER + '%' OR t2.Name LIKE '%' + @USER + '%'
使用'UNION ALL' /'UNION', –
由於菲利克斯,答案是正確的,但我會接受由威廉第1個答案,只是前面的人投票,因爲差距是47secs –
有很多答案建議UNION或UNION ALL。請注意,UNION只返回一個不同的列表,爲了生成這個列表,SQL Server必須執行一個獨特的排序。這通常比UNION ALL昂貴得多。如果你不需要獨特的排序,你不應該選擇UNION ALL。 – DatumPoint