Вверх

Блог
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)

Ответить

 
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • Image links with 'rel="lightbox"' in the <a> tag will appear in a Lightbox when clicked on.
  • Image links from G2 are formatted for use with Lightbox2
  • Image links with 'rel="lightshow"' in the <a> tag will appear in a Lightbox slideshow when clicked on.
  • Links to HTML content with 'rel="lightframe"' in the <a> tag will appear in a Lightbox when clicked on.
  • Links to video content with 'rel="lightvideo"' in the <a> tag will appear in a Lightbox when clicked on.
  • Links to inline or modal content with 'rel="lightmodal"' in the <a> tag will appear in a Lightbox when clicked on.

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

Главная | Портфолио | Услуги | Контакты | Блог