нелогичный вывод из оператора SQL с командой IN - PullRequest
0 голосов
/ 25 мая 2020

Почему этот код выводит названия стран с населением меньше 25000000?

SELECT name, continent, population 
FROM world x  
WHERE continent IN(SELECT continent FROM world
WHERE population >= 25000000)

Я практикуюсь на SQLZOO. https://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial и используйте firefox (SQLite)

Вот результат. вывод SQL Код с оператором IN

1 Ответ

0 голосов
/ 25 мая 2020

Выбор подзапроса континенты , которые состоят из стран с населением более 2500000.

SELECT continent FROM world
WHERE population >= 25000000

Ваш последний запрос возвращает страны, расположенные на континентах из первого подзапроса (с условием WHERE continent IN (first subquery), поэтому он даже не проверяет население этих стран.

SELECT name, continent, population 
FROM world x  
WHERE continent IN (SELECT continent FROM world
WHERE population >= 25000000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...