連線的定義:兩個表之間通過某種聯絡連線在一起,產生乙個新的表
1.內連線 (inner join)
概念:返回連線表中符合連線條件和查詢條件的資料行。
例項1:職工表與部門表
職工表:
部門表:
將以上兩個表進行內連線:
select *
from
emp e
inner join
dept d
on e.`deptno` = d.`deptno`
;
連線結果為:
2.外連線 (outer join)
外連線不但返回符合連線和查詢條件的資料行,還返回不符合條件的一些行。
外連線分三類:左外連線(left outer join)、右外連線(right outer join)和全外連線(full outer join)。
左外連線如下圖:
顯示左邊的表的其他資訊
右外連線如下圖:
顯示右邊的表的其他資訊
接下來,講一下什麼是全外連線
把兩個中不相關的資料全部顯示出來
形如:
select o.id,o.order_number,o.customer_id,c.id,c.name
from orders o
left outer join customers c
on c.id=o.customer_id
union --關鍵字
select o.id,o.order_number,o.customer_id,c.id,c.name
from orders o
right outer join customers c
on c.id=o.customer_id;
Mysql中的全外連線
首先,mysql本身是沒有提供全外連線的,mysql中多表查詢只提供了內連線,左外連線與右外連線 table reference outer join table reference on conditional expr 1 inner join on內連線 只寫join時預設為內連線 2.1 左...
MySQL內連線 左外連線 右外連線 全外連線
連線的優勢是減少了外來鍵的使用。內連線 最常見的等值連線,指連線結果僅包含符合連線條件的行,參與連線的兩個表都應該符合連線條件。inner join或join on condition 首先建立兩個表person和card,內容如下 select from card id cardname 1 ca...
SQL中的全外連線
今天看到一貼,說到 mysql 不支援全外連線,希望能給出乙個方法能夠解決這個問題.我們首先必須明白在數學領域,set 和 bag 是兩種不同的概念.bag 比 set 更加複雜.主要就是允許了元素的重複出現.因此 bag 的union,intersect,difference 也就有了些區別.要模...