我正在學習 MySQL,并且很難查詢每個人擁有的寵物數量。這是我的表:
CREATE TABLE person(
person_id integer primary key auto_increment,
person_name varchar(500) NOT NULL,
person_birthdate date not null
);
CREATE TABLE pet(
pet_id integer primary key auto_increment,
person_id integer not null,
pet_name varchar(500) not null,
pet_type varchar(500) not null,
Foreign key (person_id) references person (person_id),
Index (person_id)
);
uj5u.com熱心網友回復:
Select person_id,count(person_id) as totalPets from pet group by person_id
這是您想要的查詢。
uj5u.com熱心網友回復:
對于一個新的答案,加入兩個表,按人分組,條目數是一個人的數量:
select person_name, count(*) as NumPets
from person p
left join pet pt
on pt.person_id = p.person_id
group by p.person_id
uj5u.com熱心網友回復:
寵物的數量是一個簡單的計數,在 上相關person_id,例如:
select person_name,
coalesce((select count(*) from pet pt where pt.person_id = p.person_id),0) NumPets
from person p;
uj5u.com熱心網友回復:
我在左連接查詢中使用了一個案例來包括沒有寵物的人。
insert into person values(1,'john',19991010),(2,'marry',20000101),(3,'terry',19981101);
insert into pet values(1,2,'doggy','dog'),(2,3,'catty','cat'),(3,2,'snaky','snake');
select ps.person_id ,case when count(pet_id) is null then 0 else count(pet_id) end as pet_count
from person ps
left join pet pt on ps.person_id=pt.person_id
group by ps.person_id;
結果集如預期:
person_id, pet_count
'1', '0'
'2', '2'
'3','1'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454015.html
上一篇:useEffect中有一個setState并且是console.loggingnull
下一篇:SQL回傳所有行和計數
