2016-04-21 5 views
1

Я знаю, что это вызовет неоднозначную ошибку, поскольку имя существует в обеих таблицах. Но Я хочу выбрать Имя из этих двух таблиц. Имя - это столбец в 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 над 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

Вы можете с помощью Aliasing.

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 + '%'