как называется эта конструкция SQL select? - PullRequest
2 голосов
/ 22 сентября 2010

Каков термин для конструкции select в следующем выражении select, выделенном жирным шрифтом?

ВЫБРАТЬ a.t1 как a, (ВЫБРАТЬ b.n как b ОТ b, ГДЕ b.x = a.t1), c.t2 как c ОТ А, С ГДЕ a.x = c.x

Я объяснял, что это можно сделать оракулом, но когда его спросили, как это называется, я не мог придумать ни одного термина. Есть ли термин для этого? Или это просто выбор результата выбора?

РЕДАКТИРОВАТЬ: расширенный запрос, чтобы сделать подзапрос понятным

Ответы [ 4 ]

14 голосов
/ 22 сентября 2010

Это подзапрос.Если b.n ссылается на таблицу с псевдонимом b во внешнем запросе, то это можно назвать коррелированным подзапросом .

. Как отмечает guigui42, это также scalar запрос, поскольку он возвращает не более одного столбца и строки.Фактически, вы должны позаботиться о том, чтобы не более чем когда-либо возвращалась только одна строка, иначе запрос может завершиться сбоем позже.Это часто защищается с помощью TOP 1 или эквивалентного.

5 голосов
/ 22 сентября 2010

я бы сказал " Скалярный подзапрос "

РЕДАКТИРОВАТЬ: как сказал RedFilter, это также коррелированный подзапрос.

, так что это Скаляр коррелированныйподзапрос

4 голосов
/ 22 сентября 2010

Вложенный подзапрос.

... общеизвестно, что плохо работают, если неправильно (что довольно часто)

1 голос
/ 22 сентября 2010

Это упоминается как sub-select.

...