2009-10-27 2 views
1

Что мне нужно сделать, это искать в компаниях и тэгах таблицу и листинговые компании.Поиск нескольких таблиц с подзапросом

Моя структура таблицы такова:

теги (tag_id, тег) tag_relation (tag_id, company_id) компании (company_id, company_name, company_description)

запрос должен быть в состоянии поиска как информация о компании (название, описание) и теги. Если поиск тега, связанные компании должны вернуться.

ответ

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 
+0

спасибо, но я получаю сообщение об ошибке 1064. Есть ли способ сделать это с поиском в таблице компаний и это в то время проверки с подзапроса, если есть тег, связанные с ним .. –

+0

жаль моя вина .. похоже работаю хорошо! большое спасибо! –

Смежные вопросы