使用子查询搜索多个表

时间:2009-10-27 20:36:15

标签: php mysql join subquery

我需要做的是从公司和标签表和上市公司中搜索。

我的表格结构如下;

标签(tag_ID,tag) tag_relation(tag_ID,company_ID) 公司(company_ID,company_name,company_description)

查询应该能够搜索公司信息(名称,描述)和标签。如果搜索了标签,相关公司应该返回。

1 个答案:

答案 0 :(得分:2)

假设您想要运行“喜欢”搜索,可以使用下面的代码。如果你有非常大的表,性能可能会非常糟糕,因为通配符会阻止使用索引。

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