SQL从名称包含查询的多个表中选择

时间:2012-02-01 18:35:14

标签: mysql sql

我有3个包含以下列的表

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

我想在我选择的位置执行选择查询 这三个表中的名称和描述如果名称包含我的查询。

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

你的描述有点不清楚,但听起来你想要一个联盟

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 :(得分:2)

我认为这就是你所要求的。

select * from tableA where name = 'Foo'
Union
select * from tableB where name = 'Foo'
Union
select * from tableC where name = 'Foo'

答案 3 :(得分:0)

假设您希望表tableA,tableB和tableC中名称包含某个单词的所有Name,Description列,它应该是这样的:

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, '%')