mysql中可以通過內外鍵鏈結,將有關係的表中資料合併到一起進行條件篩選:
首先建立兩個新錶,資料如下:
student 表資料:
score 表資料:
可以看到students表中stu_id為16048008的記錄對應score表沒有資料;
1.當進行內連線時,系統會自動忽略兩個表中對應不起來的資料:
--資料太多,只截圖最末尾的:顯示內連線所有資料:
select
*from students st inner
join score sc on st.sid=sc.stu_id;
可以看到,資料只顯示到16048007,16048008的並沒有顯示,所以內連線只顯示所有有關聯的資料.
--左外鏈結 left
可以看到,16048008在右邊score表中沒有資料,系統用null補齊,
上圖是我們將students表和score錶換了一下位置的執行結果,可以看出,本來右邊表16048008記錄,因為在左邊表鐘沒有資料對應,所以被刪除了,可以看出,左鏈結是以左邊表中資料為參照,顯示左邊表中所有資料,右邊表,只顯示與左邊表對應的資料,少了補null,多了刪除;
同理,右鏈結是以右邊為參照,左邊少了補null,多了刪除,這裡就不多說了;
以上可以得出:
1.內連線,顯示兩個表中有聯絡的所有資料;
2.左鏈結,以左表為參照,顯示所有資料;
3.右鏈結,以右表為參照顯示資料;
SQL左鏈結 右鏈結 全鏈結的區別
外連線分為 左外連線 右外連線 全外連線 左外連線就是以左表為準,去匹配右表,左表有多少條資料,結果就是多少條資料 select from a left join b on a.id b.id id name id name 1 a 1 b 2 b null null 4 c null null 右...
左連線與右鏈結
左連線和右連線都是外部連線,也就是區別於內部連線,它對不滿足連線條件的行 並不是象內部連線一樣將資料完全過濾掉,而是保留一部分資料,行數不會減少。在oracle pl sql中,左連線和右連線可以用如下的方式實現 語句片斷 select emp name,dept name form employe...
mysql 內連線 左連線 右鏈結
如果沒有加入where條件查詢的資料數量是 student行數 grade行數 select from student join grade where student.gid grade.gid 左連線不能用where可以用on,左邊的表資料全查出來,右邊的表只顯示符合條件的 select fro...