Урок за подзаявки на MySQL

Автор: Marcus Baldwin
Дата На Създаване: 21 Юни 2021
Дата На Актуализиране: 14 Може 2024
Anonim
Обучение по САМО-турагенту для новых пользователей
Видео: Обучение по САМО-турагенту для новых пользователей

Съдържание

Подзапитванията са заявки, поставени в друга. Те ви позволяват да отделите част от изречението и да осигурите по-разбираема алтернатива на операциите, които могат да изискват сложни присъединявания и синдикати. Подзаявките в MySQL могат да върнат стойност, ред, колона или таблица с данни.


Използвайте подзапитвания, за да създадете по-четливи и компактни изречения (Снимки на Thinkstock / Comstock / Getty Images)

Синтаксисът

Основният синтаксис на подзапитване е както следва:

SELECT * FROM таблица1 WHERE columnA = (SELECT колонаB от таблица2) GO

Подзаявки трябва да се състоят от "SELECT", "INSERT", "UPDATE", "DELETE", "SET" или "DO" оператор и не можете да променяте таблицата и да я използвате в подзаявката едновременно. Подзаявките обикновено се използват от дясната страна на клаузата WHERE, която може да съдържа някой от сравнителните и логически оператори, като = (равен), <> (различен), <= (по-малък или равен),> = или "BETWEEN" (между две стойности), "NOT", "AND" и "OR". Можете също да използвате ключовите думи „DISTINCT“, „GROUP BY“, „ORDER BY“ и „LIMIT“ и дори да се комбинират с отчети „JOIN“. Освен подробните ограничения, при писането на подзаявки в MySQL има малко ограничения.


Няма дори ограничение за броя на подзаявките, направени в рамките на едно изречение. Можете да намерите повече информация за подзаявките в справочника за MySQL (вижте секцията "Ресурси").

пример

Да предположим, че имате две таблици: едната с име и фамилия, адрес и пощенски код на членове на пощенски списък и един с градове, щати и пощенски код. За да намерите имената на членовете, живеещи в Бразилия, могат да се използват няколко изречения за избор. Първият ще търси CEP на Бразилия:

SELECT FROM кодове WHERE състояние = "BRASILIA" GO

След това използвайте „изберете“ за всеки намерен пощенски код:

SELECT име, фамилно име FROM адреси WHERE cep = [codecep] GO

Този метод отнема време и е лесен за допускане на грешки. Лесно е да загубите пощенски код, особено ако има твърде много от тях. По-лесен начин да изпълните тази задача е да използвате първото изречение като подзапитване във втората:

SELECT име, фамилия FROM адреси WHERE cep = (SELECT cep FROM кодове WHERE състояние = "BRASILIA") GO


Тази заявка ще покаже всички членове на вашия пощенски списък, които живеят в Бразилия.