MySQL — это хорошо известная база данных, производная от стандартного SQL. Это одна из самых популярных баз данных. MySQL позволяет выполнять операции CRUD и все другие основные команды, необходимые при управлении базой данных. Когда вам нужны данные из разных таблиц на основе определенных условий, MySQL предоставляет объединения для обработки этих типов задач. В этой статье подробно рассматривается внутреннее соединение MySQL.
Что такое внутреннее соединение? Внутреннее соединение аналогично простому соединению. Внутреннее соединение возвращает общие записи или строки из предоставленных условий и таблиц. Мы можем использовать любое из этих предложений, и мы все равно будем иметь те же результаты. Давайте рассмотрим несколько примеров, чтобы показать вам, как правильно использовать внутренние соединения в MySQL.
Прежде чем изучать использование внутренних объединений, мы можем получить результат из двух разных таблиц на основе условий, используя оператор SELECT и предложение WHERE. В следующем примере «books» и «authors» — это две разные таблицы в базе данных.
DESC books; DESC authors;
В таблице «books» у нас есть внешний ключ author_id из таблицы «authors».
Чтобы получить все столбцы из обеих таблиц, мы устанавливаем books.author_id = developers.author_id. Запрос SELECT будет следующим:
SELECT * FROM books, authors WHERE books.author_id = authors.author_id;
Как вы можете видеть на изображении выше, мы получили все столбцы из обеих таблиц. Часто иметь все столбцы нецелесообразно, даже если они не нужны. Итак, если вы хотите получить только определенные столбцы из обеих таблиц, вам нужно будет указать имена столбцов в операторе SELECT, как показано ниже:
SELECT books.book_name, books.category, authors.author_fname, authors.author_lname FROM books, authors WHERE books.author_id = authors.author_id;
Как видите, у нас есть чистый и четкий вывод четырех столбцов из обеих таблиц.
Теперь мы выполним ту же задачу, используя предложение INNER JOIN.
Чтобы объединить две таблицы с помощью предложения INNER JOIN, запрос SELECT будет следующим:
SELECT books.book_name, books.category, authors.author_fname, authors.author_lname FROM books INNER JOIN authors ON books.author_id = authors.author_id;
Как вы можете видеть на скриншоте выше, мы получили тот же результат, но на этот раз с использованием предложения INNER JOIN.
Как указывалось ранее, предложение INNER JOIN такое же, как простое предложение JOIN. Это означает, что мы можем использовать предложение JOIN вместо предложения INNER JOIN и по-прежнему получать те же результаты. Запрос SELECT с простым предложением JOIN будет выглядеть следующим образом:
SELECT books.book_name, books.category, authors.author_fname, authors.author_lname FROM books JOIN authors ON books.author_id = authors.author_id;
Как вы можете видеть на изображении выше, мы получили те же результаты. Это показывает, что простые предложения JOIN и INNER JOIN одинаковы. Вы можете получить те же результаты, используя любое из этих предложений соединения.
Концепция внутреннего соединения на этом не заканчивается. В предыдущих примерах мы применили объединение двух таблиц на основе ключа author_id. Поскольку мы знаем, что ключ author_id уже является внешним ключом в таблице «books», мы можем сократить синтаксис, используя предложение USING с соединением. Синтаксис использования предложения USING с предложением JOIN следующий:
SELECT books.book_name, books.category, authors.author_fname, authors.author_lname FROM books JOIN authors USING (author_id);
Можно заметить, что этот запрос дал те же результаты с предложением USING.
Точно так же мы можем применить условие вместе с применением соединения между двумя таблицами, используя предложение WHERE. Например, чтобы получить те же четыре столбца из обеих таблиц, в которых фамилия автора равна ‘Master’, запрос на получение такого вывода будет следующим:
SELECT books.book_name, books.category, authors.author_fname, authors.author_lname FROM books JOIN authors USING (author_id) WHERE authors.author_lname = 'Master';
Как вы можете видеть на изображении выше, мы получили только две строки, в которых фамилия автора — «Master».
Итак, теперь вы видели несколько примеров различных способов использования внутреннего соединения для получения желаемых результатов в MySQL.
В этой статье мы попробовали несколько различных примеров использования внутреннего соединения, чтобы обеспечить более полное понимание концепции. Вы также узнали, как использовать предложения USING и WHERE с внутренним соединением, а также как получить требуемые результаты в MySQL.