SQL Выберите из нескольких таблиц, где имя содержит запрос - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть 3 таблицы со следующими столбцами

TableA
Name Description .....
TableB
Name Description ....
TableC
Name Description ....

Я хочу сделать запрос Select, где я выбираю Имя и описание из этих трех таблиц Если имя содержит мой запрос.

Ответы [ 4 ]

5 голосов
/ 01 февраля 2012
SELECT Name, Description
    FROM TableA
    WHERE Name LIKE '%YourSearch%'
UNION ALL
SELECT Name, Description
    FROM TableB
    WHERE Name LIKE '%YourSearch%'
UNION ALL
SELECT Name, Description
    FROM TableC
    WHERE Name LIKE '%YourSearch%'
4 голосов
/ 01 февраля 2012

Ваше описание немного неясно, но похоже, что вы хотите объединение

SELECT  Name, Description FROM TableA where Name = @myNameFilter
  UNION ALL
SELECT  Name, Description FROM TableB where Name = @myNameFilter
  UNION ALL
SELECT  Name, Description FROM TableC where Name = @myNameFilter

Не ясно, хотите ли вы дублировать или нет (может быть UNION вместо UNION ALL).

2 голосов
/ 01 февраля 2012

Я думаю, это то, что вы просите.

select * from tableA where name = 'Foo'
Union
select * from tableB where name = 'Foo'
Union
select * from tableC where name = 'Foo'
0 голосов
/ 01 февраля 2012

Если вы хотите, чтобы все столбцы Name, Description из таблиц tableA, tableB и tableC, имена которых содержат определенное слово, должны выглядеть примерно так:

select Name, Description from TableA where Name like concat('%', word, '%')
UNION
select Name, Description from TableB where Name like concat('%', word, '%')
UNION
select Name, Description from TableC where Name like concat('%', word, '%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...