Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

ALL sql

ALL sql

Всем доброго времени суток и в данной статье мы с вами рассмотрим как сравнивать значения одного запроса с другим. И давайте сразу же рассмотрим пример.

Допустим у нас есть две таблицы.

tovar
id		tovar	
1		samsung		
2		honda			
3		sony		
4		sony		
5		nike		
6		samsung	
======================
table2
id		id_tovar		country
1		2			Japan
2		5			USA	
3		6			Korea

Как видите в первой таблице у нас указаны бренды , а во второй страны производители. Эти две таблицы между собой связаны полями id и id_tovar.

Ситуация нам нужно достать бренд по стране производителю , как мы это реализуем.

Допустим страна производитель будут у нас Соединенные штаты USA
SELECT `tovar` FROM `tovar` WHERE `id` = ALL(SELECT `id_tovar` FROM `table2` WHERE `country` = 'USA')

Как видите мы достали американский бренд nike. Давайте теперь подробнее разберем запрос.

Первая часть запроса нам понятна мы из таблицы tovar достаем поле `tovar`.

Вторая часть запроса немного запутана, где поле id равняется и дальше идет ключевое слово ALL, а дальше в круглых скобочках идет подзапрос. Так вот ключевое слово ALL означает что мы все значения , которые достанет нам подзапрос (SELECT `id_tovar` FROM `table2` WHERE `country` = 'USA') будут сравниваться со значением `id`( в качестве сравнения могут также выступать и другие операторы(<>, >, <, <=, >= и т.п.))

SELECT `tovar` FROM `tovar` WHERE `id` = ALL(SELECT `id_tovar` FROM `table2` WHERE `country` = 'USA')

Каждое значение строки поля `id_tovar` которое достает нам внутренний запрос в круглых скобках, проверяется на присутствие в поле `id` таблицы `tovar`.

В результате нам возвращается результат внешнего запроса

SELECT `tovar` FROM `tovar` WHERE `id` = ALL - внешний запрос

SELECT `id_tovar` FROM `table2` WHERE `country` = 'USA' - внутренний запрос

Надеюсь что данная статья была вам понятна и интересна. Удачи!

Оцените статью:

Статьи

Разработки

Комментарии

В данном разделе пока нет комментариев!

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm