首先我這有兩張表mysql
注意:顧客與訂單之間是一對多關係sql
需求:查詢哪一個顧客(customer_name)在哪一天(create_time)消費了多少錢(money)
spa
sql語句:code
select c.customer_name, o.create_time, o.money from customer c, orders o where c.id = o.customer_id
sql語句也能夠這樣寫:blog
select c.customer_name, o.create_time, o.money from customer c inner join orders o on c.id = o.customer_id
結果:class
內鏈接的過程:select
將符合條件的記錄組合起來,放在一張新表裏面sql語句
需求:查詢哪一個顧客(customer_name)在哪一天(create_time)消費了多少錢(money)im
sql語句:查詢
select c.customer_name, o.create_time, o.money from customer c left join orders o on c.id = o.customer_id
結果:
從結果能夠很清楚的明白左鏈接的含義:
將左邊表的全部記錄拿出來,無論右邊表有沒有對應的記錄
需求:查詢哪一個顧客(customer_name)在哪一天(create_time)消費了多少錢(money)
sql語句:
select c.customer_name, o.create_time, o.money from customer c right join orders o on c.id = o.customer_id
結果:
、
從結果能夠很清楚的明白右鏈接的含義:
將右邊表的全部記錄拿出來,無論右邊表有沒有對應的記錄
這裏要注意的是mysql自己並不支持全鏈接查詢,可是咱們能夠使用UNION關鍵字實現
sql語句:
select c.customer_name, o.create_time, o.money from customer c left join orders o on c.id = o.customer_id UNION select c.customer_name, o.create_time, o.money from customer c right join orders o on c.id = o.customer_id
結果:
從sql語句中能夠清楚的看到:
使用UNION關鍵字將左鏈接和右鏈接,聯合起來