我想做一个选择请求,执行第一个选择,然后使用该选择执行第二个选择。
我使用临时表制作了第一个版本,但我想知道是否有办法在没有临时表的情况下做到这一点
我的临时表代码如下:
select dvd_name, book_name , count(*) nb
into #t
from usr
inner join book on usr_book_id = book_id
inner join dvd on dvd_id = usr_dvd_id
group by dvd_name, book_name
having count(*) > 1
select top 10 usr_smthg, #t.book_name,dvd_name
from #t
inner join book b on b.book_name = #t.book_name
inner join usr on usr_book_id = book_id
Run Code Online (Sandbox Code Playgroud)
您可以为此使用 CTE
with t as
(
select dvd_name, book_name , count(*) nb
from usr
inner join book on usr_book_id = book_id
inner join dvd on dvd_id = usr_dvd_id
group by dvd_name, book_name
having count(*) > 1
)
select top 10 usr_smthg, t.book_name,dvd_name
from t
inner join book b on b.book_name = t.book_name
inner join usr on usr_book_id = book_id
Run Code Online (Sandbox Code Playgroud)