Подзапросы - PullRequest
       13

Подзапросы

0 голосов
/ 09 февраля 2009

Как вы представляете подзапросы в предложениях SELECT и WHERE?

Ответы [ 3 ]

9 голосов
/ 09 февраля 2009

Операторы, которые включают подзапросы, обычно принимают один из следующих форматов:

  • ГДЕ выражение [NOT] IN (подзапрос)
  • ГДЕ выражение сравнения_оператор [ЛЮБОЙ | ALL] (подзапрос)
  • ГДЕ [НЕ] СУЩЕСТВУЕТ (подзапрос)

Основы подзапроса (Электронная документация по SQL Server 2008, январь 2009 г.)

3 голосов
/ 09 февраля 2009

Вы можете использовать подзапросы в предложениях SELECT и WHERE следующим образом:

select
  c.customerid,
  (
    select sum(i.amount) as totalspent
    from item i
    where i.customerid = c.customerid
  ) as totalspent
from customer c
where exists
(
  select *
  from purchase p
  where p.customerid = c.customerid
)
1 голос
/ 09 февраля 2009

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

Подзапросы действительно высасывают производительность системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...