Автозаполнение из нескольких таблиц

Мне интересно, каков наиболее эффективный способ получения результатов автозаполнения из нескольких таблиц?

Предостерегающее существо; Я хочу быть в состоянии определить, из какой таблицы поступают записи.

Например, учитывая эти примеры таблиц:

+- 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 и исходную таблицу, и вы могли бы отформатировать это для вашего автозаполнения.

Другие вопросы по тегам