Buscar varias tablas con Subconsulta
Pregunta
Lo que tengo que hacer es buscar en la tabla de compañías y etiquetas y listar compañías.
La estructura de mi tabla es la siguiente;
etiquetas (tag_ID, etiqueta) tag_relation (tag_ID, company_ID) empresas (company_ID, company_name, company_description)
La consulta debe poder buscar información de la empresa (nombre, descripción) y etiquetas. Si se busca la etiqueta, las empresas relacionadas deberían regresar.
Solución
Suponiendo que desea ejecutar " like " búsquedas, puede usar el siguiente código. Si tiene tablas muy grandes, el rendimiento puede ser bastante malo porque los comodines evitarán el uso de índices.
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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow