2014-01-10 3 views
0

Как мы знакомы с общим синтаксисом:Как работает подзапрос в MySQL?

select col1 from tab1 t1 where not exists(select col2 from tab2 t2 where t2.col2 > t1.col1) 
select col1 from tab1 t1 where not exists(select col2 from tab2 t2 where t2.col2 < t1.col1) 

Теперь давайте простую таблицу с именем Вкладка:

col 
---------- 

    1 
    2 
    3 
    4 
    5 
    6 


---------- 

Теперь запрос давайте:

select col from tab t1 where not exists(select col from tab t2 where t2.col < t1.col) 

Результаты Этот запрос in: 1

select col from tab t1 where not exists(select col from tab t2 where t2.col > t1.col) 

Этот результат запроса в: 6

Итак, я пытаюсь понять, как MySQL делает это? Мне не хватает теоретических знаний об этом.

+0

Что вы имеете в виду под «этим результаты запроса в: 6 "и" этот запрос приводит к: 1 " – johnny

+0

Я имею в виду выход basrd в данной таблице @Jaan – rosemary

+0

@rosemary i реплицировал вашу «настройку» и запустил запрос, и результаты были наоборот (что также является логическим результатом) – ITroubs

ответ

0

в запросе

select col from tab t1 where not exists(select col from tab t2 where t2.col < t1.col) 

select col from tab t1 

выбирает все записи, то подзапрос в

where not exists(select col from tab t2 where t2.col < t1.col) 

выбирает каждую запись, которая меньше текущей записи он хочет comapre с. Таким образом, для записи 1 в первом запросе он не принимает никаких записей, так как нет никакой записи, которая меньше 1. то

not exists() 

пинков в и с тех пор нет никакого результата из подзапроса, то не существует истинно и весь запрос возвращает 1.

любое другое значение не будет возвращено, так как для любого другого значения, вы получите результат в подзапроса, таким образом, оставляя not exists() со значением false

+0

Второй запрос такой же, как и в обратном порядке, так как нет большего элемента, чем 6. КПП. в искусственной интеллигенции или более точной в системах решения ограничений этот запрос представляет собой определенное ограничение. – ITroubs

+0

Отличный учебник! спасибо @itroubs – rosemary

Смежные вопросы