Вверх

Блог
RSS лента

Выборка из двух таблиц в MySQL с помощью оператора JOIN

Вам нужно сделать выборку из двух таблиц? Тогда читайте ниже :)

Допустим, у нас есть две таблицы:

Таблица tbl1:

Таблица tbl2:

Произведём простейший запрос к двум таблицам.

SELECT * FROM tbl1,tbl2 WHERE tbl1.id=tbl2.id

В результате этого запроса получится следующая таблица:

То есть, данный запрос строго выбирает из двух таблиц только те строки, столбцы id которых совпадают.
Аналогичного результата можно добиться с помощью следующего запроса:

SELECT * FROM tbl1 JOIN tbl2 WHERE tbl1.id=tbl2.id

Для формирования условия в запросах, использующих объединение JOIN, вместо ключевого слова WHERE предпочтительно использовать ключевое слово ON, как это продемонстрировано в следующем листинге:

SELECT * FROM tbl1 JOIN tbl2 ON tbl1.id=tbl2.id

Выше было продемонстрировано перекрестное объединение таблиц tbl1 и tbl2. При это результирующая таблица содержит комбинации строк обеих таблиц, удовлетворяющих условию tbl1.id = tbl2.id. Левое объединение (LEFT JOIN) позволяет включить в результирующую таблицу строки "левой" таблицы tbl1, которой не нашлось соответствие в "правой" таблице tbl2. Смотрите следующий пример:

SELECT * FROM tbl1 LEFT JOIN tbl2 ON tbl1.id=tbl2.id

Результатом будет следующая таблица

Как видно из этого примера, записи в таблице tbl1 со значением id = 1 не нашлось соответствия в таблице tbl2, т.к. поле id в ней принимает значения 2,3,4. Тем не менее в результирующую таблицу запись включена, при этом значения полей из таблицы tbl2 принимают значение NULL. Следует заметить, что для задания условия вместо ключевого слова WHERE при левом и правом объединениях используется ключевое слово ON.
В следующем примере демонстрируется "правое" объединение при помощи конструкции RIGHT JOIN.

SELECT * FROM tbl1 RIGHT JOIN tbl2 ON tbl1.id=tbl2.id

Результирующая таблица:

Как видим, при правом объединении возвращаются строки, удовлетворяющие условию tbl1.id = tbl2.id, и строки "правой" таблицы tbl2, которым не нашлось соответствия в левой таблице tbl1.

Ваша оценка: Пусто Средняя: 3.5 (18 votes)

Комментарии

Отправить комментарий

 

Подробнее о форматировании

CAPTCHA
Если вы человек, то тогда введите символы изображенные на картинке ниже
Введите символы, изображенные на картинке.
Главная | Портфолио | Услуги | Контакты | Блог