Практические вопросы AdventureWorks — коррелированные подзапросы esp

Я пытаюсь отточить свои навыки TSQL. Я скачал базу данных AdventureWorks, но мне не помешало бы несколько примеров вопросов, которые мне задают в реальном бизнесе. Кто-нибудь знает список вопросов для этой базы данных?

Меня особенно интересуют коррелированные подзапросы. Я адаптировал вопрос, который я представил в книге. Но, отвечая на него, я решил, что могу просто использовать левое соединение и фильтровать NULLS - мне не нужно было использовать коррелированный подзапрос. Так что мне не удалось попрактиковаться с одним из них, и я до сих пор не знаю, когда я буду их использовать или как будет работать мой мозговой процесс, если мне будет представлен вопрос, требующий коррелированного подзапроса, а не соединения (если есть такое дело).

Заранее спасибо.


person user3469285    schedule 20.05.2014    source источник


Ответы (1)


На самом деле это не вопрос для этого сайта, но, как я много раз попадал в вашу ситуацию, я помогу вам, чем смогу.

Сделайте запрос, в котором вы выбираете всех клиентов, у которых нет заказов. Я думаю, что это очевидный пример, когда вам нужно будет использовать подзапрос.

person CiucaS    schedule 20.05.2014
comment
Спасибо. Не знал о типе вопросов, разрешенных на сайте. Буду иметь в виду на будущее. Я думаю, что запрос, который вы задали, я уже экспериментировал, и я присоединяюсь к клиентам с заказами, а затем просто использую WHERE, чтобы отфильтровать заказы NULL, чтобы он отображал только клиентов с оставшимися заказами. Другими словами, мне не нужно было использовать подзапрос: `SELECT * FROM [User] LEFT OUTER JOIN [Orders] ON [Orders].[userid] = [user].[id] WHERE OrderPlaced IS NULL ` - person user3469285; 21.05.2014
comment
SELECT * FROM [User] WHERE User.ID не в ( SELECT UserID FROM Orders ) это запрос с использованием подзапроса. - person CiucaS; 21.05.2014