Spec-Zone.ru › MariaDB

Подзапросы и EXISTS

Синтаксис

SELECT ... WHERE EXISTS <Table subquery>

Описание

Подзапросы с использованием ключевого слова EXISTS вернут true, если подзапрос вернёт любые строки. И наоборот, подзапросы с использованием ключевого слова NOT EXISTS вернут true, только если подзапрос не вернёт ни одной строки из таблицы.

Подзапросы EXISTS игнорируют столбцы, указанные в выражении SELECT подзапроса, так как они не имеют значения. Например,

SELECT col1 FROM t1 WHERE EXISTS (SELECT * FROM t2); 

и

SELECT col1 FROM t1 WHERE EXISTS (SELECT col2 FROM t2); 

производят идентичные результаты.

Примеры

CREATE TABLE sq1 (num TINYINT);

CREATE TABLE sq2 (num2 TINYINT);

INSERT INTO sq1 VALUES(100);

INSERT INTO sq2 VALUES(40),(50),(60);

SELECT * FROM sq1 WHERE EXISTS (SELECT * FROM sq2 WHERE num2>50);
+------+
| num  |
+------+
|  100 |
+------+

SELECT * FROM sq1 WHERE NOT EXISTS (SELECT * FROM sq2 GROUP BY num2 HAVING MIN(num2)=40);
Empty set (0.00 sec)
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в данном содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/subqueries-and-exists/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API