2014-04-01 55 views
0

我最好如何爲用戶提供的查詢字符串搜索多個數據庫表並返回信息。如何有效地搜索多個表

說例如我有5個表格(客戶,供應商,採購訂單,零件和員工),我想構建一個統一的搜索頁面來搜索所有表格並返回數據。用戶可以把它放在一個查詢字符串,如「富」,我需要搜索customers.companyName,customers.primaryContact,...,Employees.lastName

我如何有效地實現這一點,它不切實際做5喜歡選擇。

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

而且我不能將數據源聯合在一起,因爲它們有不同的模式。

  • 如果這很重要,請使用MS SQL服務器。
+0

你可以聯合他們,你只需要從每個表中選擇通用(或同等)的列VS SELECT * – Joe

+0

我認爲你需要給我們更多關於不同模式的信息 –

+0

某些列不會有一個等效在另一張桌子。 – jammmie999

回答

0

您是否需要通過表格返回匹配? (即「4 foo Costumers,3 Parts等」)。如果你的答案是否定的,你可以製作一個這樣的聯盟:

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:在評論中寫作太雜亂。