..


Рекламные ссылки

Использование предложения UNION для объединения результатов из двух таблиц

Статья, написанная Максом Босси

Язык SQL предоставляет нам довольно простой способ объединить, в то же ЗЕЬЕСТ, результаты двух разных таблиц.

Чтобы добиться этого, пришло время использовать UNION all'opertore который, по сути, объединение результатов, полученных с помощью запроса две таблицы.

Обратите внимание, что для того, чтобы быть использованы должным образом, пришло время, что оператор UNION:

  • что таблицы запрашиваются на одинаковое число столбцов;
  • просит столбцов с одинаковыми именами;
  • что требуется столбцов в двух таблицах имеют последовательную типов данных;
Вот пример: скажем, того, чтобы работать с базой данных гипотетических туристическое агентство и предположим, что наша БД содержит только две таблицы:
  • hotel_italia
    • имя
    • Звезды
    • город
    • нация
  • hotel_europa
    • имя
    • Звезды
    • город
    • нация
Теперь предположим, что клиент хочет, чтобы мы знали либо предложения отелей в Италии и в Европе:





 SELECT, имя, звезды, город, страна







 ОТ hotel_italia







 СОЮЗ







 SELECT, имя, звезды, город, страна







 ОТ hotel_europa



С этим запросом мы получаем полный список всех отелей в две таблицы:

имя Звезды город нация
Hotel Cavour 4 Рим EN
Отель Miramare 2 Католический EN
Отель Manzoni 2 Милан EN
Hotel Espana 3 Мадрид ES
Hilton 5 Лондон Великобритания
Hotel Am Schlossgarten 4 Штутгарт DE

Примечание: обратите внимание, что Союз не показывает повторяющихся записей (по умолчанию работает как если бы это было SELECT DISTINCT ), и если вы хотите какой-либо повторяющихся записей и шоу (думаю, вернемся к нашему примеру, в одном из отелей этого как в таблице в том, что hotel_italia hotel_europa) нужно будет использовать UNION ALL.

Сортировка и ограничить результаты, вытекающие из СОЮЗ

Предположим, что результаты использования UNION и многие хотят, чтобы они ограничиваются указанный номер. Как? Вот решение:

 



 SELECT * FROM







 (SELECT имя, звезды, город, страна ОТ hotel_italia







 СОЮЗ







 SELECT, имя, звезды, город, страна ОТ hotel_europa)







 Отель AS







 ORDER BY DESC LIMIT 10 звезд

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

В той же категории ...
E-Learning
MS Access (хороший) MS Access (хороший)
Узнайте, как создавать и управлять базами данных быстро и легко. Начиная от 29 €.
MySQL (курс) MySQL (курс)
Управление с открытым исходным кодом базы данных. С 39 €.
SQL и базы данных (курс) SQL и базы данных (курс)
Создание и управление реляционными базами данных. С 39 €.
Рекламные ссылки