MySQL Subquery Tutorial

Автор: Marcus Baldwin
Дата создания: 21 Июнь 2021
Дата обновления: 11 Май 2024
Anonim
Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn
Видео: Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn

Содержание

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


Используйте подзапросы для создания более читаемых и компактных предложений (Thinkstock Images / Comstock / Getty Images)

Синтаксис

Основной синтаксис подзапроса следующий:

SELECT * FROM table1, ГДЕ столбец A = (ВЫБРАТЬ столбец B ИЗ таблицы2) GO

Подзапросы должны состоять из операторов «SELECT», «INSERT», «UPDATE», «DELETE», «SET» или «DO», и вы не можете изменить таблицу и одновременно использовать ее в подзапросе. Подзапросы обычно используются в правой части предложения WHERE, которое может содержать любой из сравнительных и логических операторов, таких как = (равно), <> (отличается), <= (меньше или равно),> = или «МЕЖДУ» (между двумя значениями), «НЕ», «И» и «ИЛИ». Вы также можете использовать ключевые слова «DISTINCT», «GROUP BY», «ORDER BY» и «LIMIT» и даже в сочетании с операторами «JOIN». Помимо подробных ограничений, есть несколько ограничений при написании подзапросов в MySQL.


Нет даже ограничения на количество подзапросов, сделанных в предложении. Вы можете найти больше информации о подзапросах в справочном руководстве MySQL (см. Раздел «Ресурсы»).

пример

Предположим, у вас есть две таблицы: одна с именем и фамилией, адресом и почтовым индексом членов списка рассылки, а другая с городами, штатами и почтовым индексом. Чтобы найти имена членов, живущих в Бразилии, можно использовать несколько «избранных» предложений. Первый будет искать CEPs Бразилиа:

ВЫБЕРИТЕ ИЗ КОДОВ ГДЕ состояние = "БРАЗИЛИЯ" GO

Затем используйте «select» для каждого найденного почтового индекса:

ВЫБЕРИТЕ имя, фамилию ОТ адреса ГДЕ cep = [codecep] GO

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

ВЫБЕРИТЕ имя, фамилию ОТ адресов, ГДЕ cep = (ВЫБЕРИТЕ СЕП ИЗ КОДОВ, ГДЕ состояние = "БРАЗИЛИЯ") GO


Этот запрос покажет всех участников вашего списка рассылки, которые живут в Бразилии.