У меня есть функция поиска на моем сайте, где вы можете искать как пользователей, так и местоположения.Я пытаюсь сделать так, чтобы получить все результаты в одном запросе, но он возвращает результаты в одной строке.
SQL
SELECT users.f_name, users.l_name, users.id, locations.name, locations.id
FROM users, locations
WHERE CONCAT(f_name, ' ', l_name) LIKE '%k%' OR name LIKE '%k%';
Однако,это структура, которую она возвращает:
*---------*----------*------*------------*-----*
| f_name | l_name | id | name | id |
*---------*----------*------*------------*-----*
| Joe | Smith | 1 | Location | 1 |
*---------*----------*-------------------*-----*
etc.
Я хочу, чтобы она возвращала это:
*---------*----------*------*------------*--------*
| f_name | l_name | id | name | id |
*---------*----------*------*------------*--------*
| Joe | Smith | 1 | NULL | NULL |
| NULL | NULL | NULL | Location | 1 |
*---------*----------*------*------------*--------*
Мой единственный другой вариант - сделать два отдельных запроса и объединить результаты.Это кажется неэффективным, и, поскольку он динамически загружается с помощью ajax, я хочу, чтобы это было как можно быстрее.
Какой лучший способ сделать это?
РЕДАКТИРОВАТЬ
Структура таблицы выглядит следующим образом:
users
*---------*----------*------*
| f_name | l_name | id |
*---------*----------*------*
locations
*-------*------*
| name | id |
*-------*------*