我有一個關於內部查詢疑問內部查詢問題
模式:
DEPARTMENT
(deptnum,記述,instname,則將DEPTNAME,州,郵編)ACADEMIC
(acnum ,deptnum *,famname,givename,首字母縮寫,標題)PAPER
(panum,標題)AUTHOR
(panum,acnum **)FIELD
(fieldnum,ID,標題)INTEREST
(fieldnum,acnum **,記述)
我有這種格式的輸出:
select
acnum, title, givename, famname
from
academic a
where
a.acnum in (select count(*) as no_of_papers, acnum
from author auth
join paper p on auth.panum = p.panum
group by acnum
having count(*) < 20)
union
select
acnum, title, givename, famname
from
academic a
where
a.acnum not in (select count(*) as no_of_papers, acnum
from author auth
join paper p on auth.panum = p.panum
group by acnum);
但是,除了外部查詢的select語句中的字段外,我還希望在結果集中使用count(*)
作爲no_of_papers
。
我已經打破了我的頭很長一段時間了。
爲什麼不'join'到內部查詢,而不是使用它一個'where'子句? – bouncyball
哪個RDBMS是爲了這個?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –