【发布时间】:2009-10-27 20:36:14
【问题描述】:
我需要做的是从公司和标签表中搜索并列出公司。
我的表结构如下;
标签(tag_ID,标签) tag_relation (tag_ID, company_ID) 公司(company_ID、company_name、company_description)
查询应该能够搜索公司信息(名称、描述)和标签。如果标签搜索,相关公司应该返回。
【问题讨论】:
我需要做的是从公司和标签表中搜索并列出公司。
我的表结构如下;
标签(tag_ID,标签) tag_relation (tag_ID, company_ID) 公司(company_ID、company_name、company_description)
查询应该能够搜索公司信息(名称、描述)和标签。如果标签搜索,相关公司应该返回。
【问题讨论】:
假设您想运行“喜欢”搜索,您可以使用下面的代码。如果您有非常大的表,则性能可能会很差,因为通配符会阻止使用索引。
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
【讨论】: