2009-10-27 124 views
1

我需要做的是從公司和標籤表和上市公司搜索。用子查詢搜索多個表

我的表格結構如下;

標籤(TAG_ID,標籤) tag_relation(TAG_ID,COM​​PANY_ID) 公司(COMPANY_ID,COM​​PANY_NAME,company_description)

查詢應能同時搜索公司信息(名稱,描述)和標籤。如果搜索標籤,相關公司應該返回。

回答

2

假設你想運行「like」搜索,你可以使用下面的代碼。如果你有非常大的表,性能可能會非常糟糕,因爲通配符會阻止使用索引。

select  companies.company_id, companies.company_name, companies.company_description 
from  companies 
inner join tag_relation 
on   companies.company_id = tag_relation.company_id 
inner join tags 
on   tags.tag_id = tag_relation.tag_id 
where  companies.company_name like '%something%' 
or   companies.company_description like '%something%' 
or   tag.tag like '%something%' 
group by companies.company_id, companies.company_name, companies.company_description 
order by companies.company_name 
+0

感謝,但我得到的錯誤1064有沒有辦法做到這一點與尋找到的公司表,這在與子查詢檢查是否有與它相關的標籤.. – 2009-10-27 20:51:06

+0

對不起我的錯..似乎工作正常!非常感謝! – 2009-10-27 21:01:23