базовый курс

ГРУППА КУРСА

Объединение запросов

Оператор UNION позволяет объединить несколько запросов на выборку. Выборки из каждого запроса попадают в один общий результат. Оператор UNION используется, когда нужно получить общую выборку из нескольких схожих таблиц. Например, если для каждой категории товаров создана своя таблица. Теоретически, можно объединить запросы и для разных таблиц. Но на практике в этом нет смысла, ведь в одном результате будут находиться разные по смыслу данные. Можно объединить и запросы к одной и той же таблице. Объединённый запрос выглядит так:

SELECT поле1, поле2 FROM таблица1 WHERE условие UNION

SELECT поле1, поле2 FROM таблица2 WHERE условие

Для запросов есть ограничения: количество полей во всех запросах должно быть одинаковое, а типы полей для всех запросов должны быть одни и те же. Пример:

+
1
2
<?php
header('Content-type: text/html; charset=utf-8');
3
4
5
6
$db=mysqli_connect('localhost', 'root', '', 'mybase');
$query="SELECT id, inform FROM users UNION
SELECT id, text FROM comments";
$result=mysqli_query($db, $query);

В общую выборку попадают только уникальные записи, как будто использован оператор DISTINCT. Чтобы получить все записи, нужно к оператору UNION добвить ключевое слово ALL. Запрос будет такой:

4
5
$query="SELECT id, inform FROM users UNION ALL
SELECT id, text FROM comments";