create table Autorzy(ID int, imie varchar, nazwisko varchar);
create table Wydawnictwa(ID int, nazwa varchar, adres varchar, tel varchar);
create table Ksiazki(ID int, ISBN bigint, wydawnictwo_id int, data date, ilosc int, tytul varchar);
create table KsiazkaAutor(ID int, autor_id int, ksiazka_id int);
create table Recenzje (id int, tresc varchar, autor_id int, ksiazka_id int);
我可以这样做:选择两项罪名在两个连接在一个查询
select a.imie, a.nazwisko, count(ka.id) as IloscKsiazek
from autorzy a
left join KsiazkaAutor ka on a.id=ka.autor_id
group by a.imie, a.nazwisko;
从KsiazkaAutor
SELECT COUNT或
select a.imie, a.nazwisko, count(r.id) as IloscRecenzji
from autorzy a
left join Recenzje r on a.id=r.autor_id
group by a.imie, a.nazwisko;
从Recenzje选择计数。
如何在一个SELECT中同时得到两个计数?
编辑: 第一选择:
“博莱斯瓦夫”; “普鲁斯”; 3
“亚当”; “科瓦尔斯基”; 5
“泉”, “特大”; 3
“安杰伊” ; “Sapkowski”; 3
“瓦迪斯瓦夫”; “雷蒙特”; 3
“理查德”; “道金斯”; 3
“苏菲雅”; “Nałkowska”; 3
“亨里克”; “显克微支”; 3
“Terry”;“Pratchett”; 3
“伊丽莎”; “Orzeszkowa”; 4
“亚当”; “密坎凯维奇”; 2
“约翰RR”, “托尔金”; 5
“Mikołaj”; “哥白尼”; 1
“LEN” ; “Śmierdzący” 0
“扬”, “诺瓦克”; 5
“卡米尔”; “Kowalik” 0
“伊格纳奇”; “Krasicki”; 3
第二选择:
“Bolesław”;“Prus”; 0
“Adam”;“Kowal滑雪 “; 0
”泉“,” 王 “; 0
”安杰“,” Sapkowski “0
”瓦迪斯瓦夫“,” 雷蒙特 “0
”理查德“,” 道金斯的“0
“苏菲雅”; “Nałkowska” 0
“亨里克”; “显克微支”; 1
“特里”; “普莱契 ”0
“伊丽莎”;“ Orzeszkowa”; 2
“亚当”;“密茨凯维奇“; 0
”John RR“” 托尔金 “0
” 尼古拉斯 “” 哥白尼 “0
” LEN “” 臭 “0
” 约翰 “” 史密斯 “0
” 卡米尔 “” Kowalik“; 0
“伊格” “Krasicki” 0
你的答案:
“乔治”, “普鲁士“; 3; 0
" 亚当 ”“ 史密斯”,5,0
"泉 “” 王 “; 3; 0
” 安德鲁 “” Sapkowski“; 3; 0
“瓦拉迪斯罗” “雷蒙特“; 3; 0
" 理查德”,“Dawkins的; 3; 0
”索菲亚“,”Nalkowska '; 3; 0
" 亨利 “” 显克微支'; 3; 3
“特里”“普拉切特 '; 3; 0
" 伊丽莎 “” Orzeszkowa'; 8; 8
“亚当”, “密坎凯维奇“; 2; 0
" 约翰RR”,“托尔金” ,5,0
“尼古拉斯”, “哥白尼”,1,0
“LEN” “臭”; 0; 0
“约翰”, “史密斯”,5,0
“卡米尔”;“ Kowalik“; 0; 0
“伊格内修斯”, “Krasicki”; 3; 0
+1 - 击败我! – JNK 2010-10-29 12:42:42
@ksogor - 基于什么? postgre不支持多个连接? – JNK 2010-10-29 12:43:20
它行不通。当count(r.id)> 0时返回count(r.id)等于count(count),否则返回0。 – 2010-10-29 12:43:50