SQL基础【十五、join、Inner join、Left join、Right join、Full join】
Join
數據庫中的表可以通過鍵將彼此聯(lián)系起來,主鍵是一個列,在這個列中的每一行的值都是唯一的,在表中,每個主鍵的值都是唯一的,這樣就可以在不重復每個表中的所有數據的情況下,把表間的數據交叉捆綁在一起。
以下為表user和表Room的數據
?? ??
1:引用兩個表
找出在Room of boy相關聯(lián)的用戶信息
Select u.user_name,u.user_age,r.room_name from user as u,room as r?
Where u.room_id = r.room_id and r.room_name='room of boy'
?
2:使用關鍵字join來連接兩張表
Select u.user_name,u.user_age,r.room_name
from user as u
join room as r
on u.room_id = r.room_id and r.room_name='room of boy'
?
Inner join
Inner join 與 join 用法一致
Select u.user_name,u.user_age,r.room_name
from user as u
inner join room as r
on u.room_id = r.room_id and r.room_name='room of boy'
?
Left join
注意:左連接以左邊的表為主體,也就是說會列出左邊的表中的所有的數據,無論它是否滿足條件。
1:user在左邊
Select u.user_name,u.user_age,r.room_name
from user as u
Left join room as r
on u.room_id = r.room_id and r.room_name='room of boy'
?
2:Room在左邊
Select u.user_name,u.user_age,r.room_name
From room as r
Left join user as u
on u.room_id = r.room_id and r.room_name='room of boy'
?
Right join
注意:左連接以右邊的表為主體,也就是說會列出左邊的表中的所有的數據,無論它是否滿足條件。
1:Room在右邊
Select u.user_name,u.user_age,r.room_name
from user as u
Right join room as r
on u.room_id = r.room_id and r.room_name='room of boy'
?
2:user在右邊
Select u.user_name,u.user_age,r.room_name
from ?room as r
Right join user as u
on u.room_id = r.room_id and r.room_name='room of boy'
?
Full join
1:user在左邊
Select * from user Full join room
?
2:Room在左邊
Select * From room full join user
?
注意:SQL錯誤碼1054表示沒有找到對應的字段名;錯誤碼1064表示用戶輸入的SQL語句有語法錯誤
?
希望能對大家有所幫助。
總結
以上是生活随笔為你收集整理的SQL基础【十五、join、Inner join、Left join、Right join、Full join】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL基础【十四、In、Between
- 下一篇: SQL基础【十六、Union】