#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