Автозаполнение из нескольких таблиц
Мне интересно, каков наиболее эффективный способ получения результатов автозаполнения из нескольких таблиц?
Предостерегающее существо; Я хочу быть в состоянии определить, из какой таблицы поступают записи.
Например, учитывая эти примеры таблиц:
+- People
+- id
+- name
+- age
+- Places
+- id
+- name
+- distance
+- Things
+- id
+- name
+- color
Содержа некоторые данные, произвольные для этой проблемы, основное внимание здесь уделяется name
столбцы (хотя это может быть что-то еще или несколько запросов на таблицу)
В любом случае, я пытаюсь выяснить, как запросить в каждой из этих таблиц данные для автозаполнения, а также вернуть данные и из какой они таблицы. Например, вывод для письма A
может выглядеть примерно так:
Apple (Things)
Amy (People)
Aaron (People)
Anaheim (Places)
Axe (Things)
Будет ли это лучше всего сделать с помощью одного запроса или нескольких запросов к различным таблицам?
Заранее спасибо:)
1 ответ
Вы можете сделать это с помощью union, в одном запросе:
SELECT name, 'Things' as source FROM Things WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'People' as source FROM People WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'Places' as source FROM Places WHERE name LIKE 'A%'
Теперь вы получите оба соответствия name
и исходную таблицу, и вы могли бы отформатировать это для вашего автозаполнения.