Сомневаетесь, как сделать запрос на несколько таблиц с одним словом


Я верхом системой поиска, где пользователь вводит в поле поиска любое слово, Например, "Программист", mysql, придется искать это слово в нескольких областях, в нескольких таблице, на случай, если он найдет это слово где-то мне верните тех, кто является профессионалом, который получает это слово.

Ниже приведены таблицы, и запрос, который я использую в данный момент, но не очень функциональный.

Таблицы/столбцы

Профессиональная:

Код

Pri_nome

Sobre_nome

Enderenco_profissional:

Код

Id_profissional

Штат

Города, то

Historico_escolar:

Код

Id_profissional

Школьного

Опыт:

Код

Id_profissional

в Должности

Query, который я пытаюсь хит!

SELECT a.id FROM profissional a, endereco_profissional b, historico_escola c, experiencia d WHERE a.pri_nome LIKE '%programador%' OR a.sobre_nome LIKE '%programador%' OR b.estado LIKE '%programador%' OR b.cidade LIKE '%programador%' OR c.escolaridade LIKE '%programador%' OR d.cargo LIKE '%programador%' OR a.id = b.id_profissional OR a.id = c.id_profissional OR a.id=d.id_profissional OR a.id=e.id_profissional OR a.id=f.id_profissional GROUP BY a.id
Author: LINQ, 2015-09-27

1 answers

Классе думаю, мне это удалось. Это было просто использовать немного больше логики и головы порты, or и and.

SELECT a.id FROM profissional a, endereco_profissional b, historico_escola c, experiencia d, area_interesse_profissional e, curso_extra f WHERE a.pri_nome LIKE '%programador%' OR a.sobre_nome LIKE '%programador%' OR (b.estado LIKE '%programador%' AND a.id = b.id_profissional) OR (b.cidade LIKE '%programador%' and a.id = b.id_profissional) OR (c.escolaridade LIKE '%programador%' AND  a.id = c.id_profissional) OR (d.cargo LIKE '%programador%' AND a.id=d.id_profissional)  GROUP BY a.id
 1
Author: Romario Pires, 2015-09-27 15:49:46