http://sqlzoo.net/wiki/Scottish_Parliament/zh
Msp(name,party,constituency)
Party(code,name,leader)
msp.party=party.code
1.一個成員被工黨逐出黨,現沒屬任何黨。找出他。
Select name from msp
Where party is null
说明:列出空值需用“is null”
2.列出每個黨及其領導人。
Msp(name,party,constituency)
Party(code,name,leader)
Msp.party=party.code
Select name,leader
From party
3.列出每個黨及其領導人,這些黨其實是沒有領導人的。
SELECT NAME,leader
FROM party
WHERE LEADER IS not NULL
4.列出政黨名單,當中最少有一名黨員在議會內。
Select party.name from
party join msp on
msp.party=party.code
Group by msp.party, party.name
Having count(party.name)>=1
5.列出議會成員的名單,如有所屬政黨,一同列出。確保 Canavan MSP,
Dennis 是在名單中。 按msp.name順序排列。
Select msp.name,party.name from party
Right Join msp on msp.party=party.code
Order by msp.name
说明:此处注意使用right join,因为原题中要求列出所有议员名单,以表格msp为主。
6.列出議會中每一政黨的黨員人數。
Select msp.party,party.name,count(party.name)
From msp join party
On msp.party=party.code
Group by msp.party,party.name
7.列出每一政黨的議會中黨員人數,包括沒有黨員在議會中的政黨。
Select party.name,count(msp.name) from party
Left join msp
On msp.party=party.code
Group by party.name
说明:此处注意使用left join msp,原题要求列出每一政党,所以以表格party为主。