如何有效地搜索多个表

时间:2014-04-01 18:50:01

标签: sql sql-server

如何最好地搜索多个数据库表以获取用户提供的查询字符串并返回信息。

比如说我有5个表(客户,供应商,采购订单,零件和员工),我想构建一个统一的搜索页面来搜索所有表并返回数据。用户可以输入一个查询字符串,如“foo”,我需要搜索customers.companyName,customers.primaryContact,...,Employees.lastName

我如何才能有效地实现这一目标,这样做就像选择一样不可行。

SELECT * 
FROM customers 
WHERE companyName LIKE '%foo%' OR primaryContact LIKE '%foo%'

我无法将数据源合并在一起,因为它们具有不同的模式。

  • 如果这很重要,请使用MS SQL服务器。

1 个答案:

答案 0 :(得分:0)

你需要按表返回比赛吗? (即" 4 foo Costumers,3 Part等等#34;)。如果您的答案为否,您可以像这样建立一个UNION:

Select match from 
(select name as match from costumers where name like'%foo%' UNION
 select category as match from products where category like'%foo%' ...)
PS:在评论中写这个太乱了。