Php 使用子查询搜索多个表

Php 使用子查询搜索多个表,php,mysql,join,subquery,Php,Mysql,Join,Subquery,我需要做的是从公司和标签表和上市公司搜索 我的表格结构如下 标签(标签ID,标签) 标签关系(标签ID、公司ID) 公司(公司ID、公司名称、公司描述) 查询应该能够搜索公司信息(名称、描述)和标签。如果搜索标记,相关公司应返回。假设您希望运行“类似”搜索,您可以使用下面的代码。如果您有非常大的表,那么性能可能非常差,因为通配符将阻止使用索引 select companies.company_id, companies.company_name, companies.company_de

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

我的表格结构如下

标签(标签ID,标签) 标签关系(标签ID、公司ID) 公司(公司ID、公司名称、公司描述)


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

假设您希望运行“类似”搜索,您可以使用下面的代码。如果您有非常大的表,那么性能可能非常差,因为通配符将阻止使用索引

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

谢谢,但我收到错误1064。在使用子查询检查是否有与之相关的标记时,是否可以通过查找companys表来做到这一点。。