Поиск SQL-запроса из нескольких таблиц MySQL

#mysql #search

#mysql #Поиск

Вопрос:

Я пытаюсь выполнить поиск по нескольким таблицам.

Я упрощу проблему и скажу, что у меня есть 2 таблицы, Worker и Customer обе имеют Id, Name, Surname и Worker имеют дополнительные Position , все поля, varchar кроме Id того, которое Int .

Как создать запрос, который вернет строки либо Customer , либо Worker , где одно из их полей содержит введенную строку поиска.

Я пробовал с объединениями, но я также получил возвращенную объединенную строку.

Комментарии:

1. По какой-то причине я думал, что не могу использовать объединение, потому что поля не совсем совпадают. Я был неправ, спасибо.

2. Взгляните на мой пример. Достаточно добавить «пустое» поле, чтобы число соответствовало.

Ответ №1:

 select id,name,surname,position,'worker' as tbl from worker where ..
union all
select id,name,surname,'','customer' from customer where ...
  

Таким образом, вы можете даже узнать результаты, к какой таблице принадлежат.

Ответ №2:

Просто UNION оба запроса.
Если вы действительно можете JOIN использовать эти две, вы можете использовать IF оператор в SELECT предложении, чтобы показать нужное поле.
Но, насколько я понимаю из вашего вопроса, используйте UNION