2016-04-21 48 views
1

我知道這會導致一個模棱兩可的錯誤,因爲Name在兩個表中都存在。但是 我想從這兩個表中選擇名稱。名稱是t_1和t_2中的一列。是否可以從兩個表中選擇?有沒有辦法讓我選擇兩個表之間的名稱,並返回一列數據?此查詢可能嗎? SELECT FROM 2 tables like

SELECT Name 
FROM t_1, t_2 
WHERE Name LIKE '%' + @USER + '%' 
+1

使用'UNION ALL' /'UNION', –

+0

由於菲利克斯,答案是正確的,但我會接受由威廉第1個答案,只是前面的人投票,因爲差距是47secs –

+0

有很多答案建議UNION或UNION ALL。請注意,UNION只返回一個不同的列表,爲了生成這個列表,SQL Server必須執行一個獨特的排序。這通常比UNION ALL昂貴得多。如果你不需要獨特的排序,你不應該選擇UNION ALL。 – DatumPoint

回答

4

你可以試試UNION;

SELECT Name 
FROM t_1 
WHERE Name LIKE '%' + @USER + '%' 
UNION 
SELECT Name 
FROM t_2 
WHERE Name LIKE '%' + @USER + '%' 

注意,UNION ALL也可以使用,如果存在的話,這也將返回相同名稱的多個實例。使用符合您的要求的任何一個。

+0

謝謝,10分鐘後,我可以接受這個答案 –

+0

不用擔心,謝謝。 – William

1
SELECT Name 
    FROM t_1 
    WHERE Name LIKE '%' + @USER + '%' 
UNION ALL 
SELECT Name 
    FROM t_2 
    WHERE Name LIKE '%' + @USER + '%' 
1

你需要使用UNION

SELECT Name 
FROM t_2 
WHERE Name LIKE '%' + @USER + '%' 
union 
SELECT Name 
FROM t_2 
WHERE Name LIKE '%' + @USER + '%' 
0

可以使用別名結合。

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 + '%' 
相關問題