SQL多表查詢問題

題目1: 查詢authors資料表中,住在'ca'加州但是不住在'oakland'城市的作者有多少人(不管有沒有寫書),以及這些作者所寫的書一共有多少本? 題目2: 查詢authors資料表中,住在'ca'加州但是不住在'oakland'城市的作者有多少人,以及這些作者所寫的書一共有多少本? 程式碼: select count(distinct a.au_id) as '作者人數',count(distinct t.title) as '書本' from authors as a join... 顯示更多 題目1:
查詢authors資料表中,住在'ca'加州但是不住在'oakland'城市的作者有多少人(不管有沒有寫書),以及這些作者所寫的書一共有多少本?
題目2:
查詢authors資料表中,住在'ca'加州但是不住在'oakland'城市的作者有多少人,以及這些作者所寫的書一共有多少本?

程式碼:
select count(distinct a.au_id) as '作者人數',count(distinct t.title) as '書本'
from authors as a join titleauthor as ti
on a.au_id=ti.au_id
join titles as t
on t.title_id=ti.title_id
where a.state like '%ca%' and a.city not like '%oakland%'

這兩題我都寫到這邊就不知道怎麼寫條件去查了...
題目1正解:
10 跟 11 筆(照題目順序寫的話)
題目2正解:
9 跟 11 筆(照題目順序寫的話)
請會的大大告知如何修改,以及LEFT RIGHT JOIN等語法,到底要在什麼時候適時寫入?
更新: 不好意思喔...你的答案還是都錯的...我已經自己有寫出來了,但不知道程式對不對
題目一:
更新 2: select count(distinct a.au_id) as '作者人數',count(t.title) as '書本'
from authors as a left join titleauthor as ti
on a.au_id=ti.au_id
left join titles as t
on ti.title_id=t.title_id
where a.state like '%ca%' and a.city not like '%oakland%'
更新 3: 題目二的:
select count(distinct a.au_id) as '作者人數',count(t.title) as '書本'
from authors as a join titleauthor as ti
on a.au_id=ti.au_id
join titles as t
on ti.title_id=t.title_id
where a.state like '%ca%' and a.city not like '%oakland%'

如有不對的地方還請多指教
1 個解答 1