在一个查询中的两个连接上选择两个计数
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 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 中获得两个计数?
编辑: 第一个选择:
“Bolesław”;“Prus”;3
"亚当";"科瓦尔斯基";5
“斯蒂芬”;“国王”;3
"安杰伊";"萨普科夫斯基";3
"瓦迪斯瓦夫";"雷蒙特";3
“理查德”;“道金斯”;3
"Zofia";"Nałkowska";3
"亨利克";"显克维奇";3
“特里”;“普拉切特”;3
"伊丽莎";"奥热什科瓦";4
"亚当";"密茨凯维奇";2
“约翰·RR”;“托尔金”;5
"米科瓦伊";"哥白尼";1
"Leń";"Śmierdzący";0
“一月”;“诺瓦克”;5
"卡米尔";"科瓦利克";0
"Ignacy";"Krasicki";3
第二个选择:
"Bolesław";"Prus";0
"亚当";"科瓦尔斯基";0
"斯蒂芬";"国王";0
"安杰伊";"萨普科夫斯基";0
"瓦迪斯瓦夫";"雷蒙特";0
“理查德”;“道金斯”;0
"Zofia";"Nałkowska";0
"亨利克";"显克维奇";1
“特里”;“普拉切特”;0
"伊丽莎";"奥热什科瓦";2
"亚当";"密茨凯维奇";0
"约翰 RR";"托尔金";0
"米科瓦伊";"哥白尼";0
"Leń";"Śmierdzący";0
"一月";"诺瓦克";0
"卡米尔";"科瓦利克";0
"Ignacy";"Krasicki";0
您的答案:
"Bolesław";"Prus";3;0
"亚当";"科瓦尔斯基";5;0
"斯蒂芬";"国王";3;0
"安杰伊";"萨普科夫斯基";3;0
"瓦迪斯瓦夫";"雷蒙特";3;0
"理查德";"道金斯";3;0
"Zofia";"Nałkowska";3;0
"亨利克";"显克维奇";3;3
“特里”;“普拉切特”;3;0
"伊丽莎";"奥尔泽什科瓦";8;8
"亚当";"密茨凯维奇";2;0
"约翰 RR";"托尔金";5;0
"米科瓦伊";"哥白尼";1;0
"Leń";"Śmierdzący";0;0
"一月";"诺瓦克";5;0
"卡米尔";"科瓦利克";0;0
"伊格纳西";"克拉斯基";3;0
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);
I can do:
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;
to select count from KsiazkaAutor
or
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;
to select count from Recenzje .
How can I get both counts in one SELECT?
EDIT:
1st select:
"Bolesław";"Prus";3
"Adam";"Kowalski";5
"Stephen";"King";3
"Andrzej";"Sapkowski";3
"Władysław";"Reymont";3
"Richard";"Dawkins";3
"Zofia";"Nałkowska";3
"Henryk";"Sienkiewicz";3
"Terry";"Pratchett ";3
"Eliza";"Orzeszkowa";4
"Adam";"Mickiewicz";2
"John R. R.";"Tolkien";5
"Mikołaj";"Kopernik";1
"Leń";"Śmierdzący";0
"Jan";"Nowak";5
"Kamil";"Kowalik";0
"Ignacy";"Krasicki";3
2nd select:
"Bolesław";"Prus";0
"Adam";"Kowalski";0
"Stephen";"King";0
"Andrzej";"Sapkowski";0
"Władysław";"Reymont";0
"Richard";"Dawkins";0
"Zofia";"Nałkowska";0
"Henryk";"Sienkiewicz";1
"Terry";"Pratchett ";0
"Eliza";"Orzeszkowa";2
"Adam";"Mickiewicz";0
"John R. R.";"Tolkien";0
"Mikołaj";"Kopernik";0
"Leń";"Śmierdzący";0
"Jan";"Nowak";0
"Kamil";"Kowalik";0
"Ignacy";"Krasicki";0
your answer:
"Bolesław";"Prus";3;0
"Adam";"Kowalski";5;0
"Stephen";"King";3;0
"Andrzej";"Sapkowski";3;0
"Władysław";"Reymont";3;0
"Richard";"Dawkins";3;0
"Zofia";"Nałkowska";3;0
"Henryk";"Sienkiewicz";3;3
"Terry";"Pratchett ";3;0
"Eliza";"Orzeszkowa";8;8
"Adam";"Mickiewicz";2;0
"John R. R.";"Tolkien";5;0
"Mikołaj";"Kopernik";1;0
"Leń";"Śmierdzący";0;0
"Jan";"Nowak";5;0
"Kamil";"Kowalik";0;0
"Ignacy";"Krasicki";3;0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,您可以这样做:
您还可以在
count
子句中尝试distinct
关键字:Yes, you can do:
You can also try
distinct
keyword in thecount
clause: