Inner Join
當 inner join 2個不同的 table 的時候, 所要達到的最低標準是在 where/on/using clauses
通常是 one-to-many relationship
以這一個 SQL 來看, 可以知道一個 address(房子) 可以住很多人, 但是一個人通常只有一間的房子
Return rows 的個數是由 person table 所有的 rows 總數所決定的
select *
from person p
join address a
using (address_id);
- 想要知道誰住在同一間房子, 就必須要到 person 的 table 找 first name 跟 last name, 到 address table 找 street 跟 city
select first_name, last_name, street, city
from person p
join address a
using (address_id);
- 覺得有相同的 data 太多餘(通常是在 1 對多的多的那一方), 所以可以用 group by street, city 表示這群人裡面有多少個 unique 的 address
select first_name, last_name, street, city
from person p
join address a
using (address_id)
group by street, city;
- 想知道這一家人裡面有幾個人, 就可以用
count()
這一個 function 計算
select first_name, last_name, street, city, count(p.person_id) as 'Num of People'
from person p
join address a
using (address_id)
group by street, city;
留言
張貼留言