08 1連線查詢 外連線 MySQL

2021-10-07 20:19:32 字數 1289 閱讀 3070

-- 外連線

/* 應用場景: 用於查詢乙個表中有,另乙個表中沒有的記錄

特點:1、外連線的查詢結果為主表中的所有記錄

如果從表中有和主表匹配的,則顯示匹配的值

如果從表中沒有和主表匹配的,則顯示null

外連線查詢的結果=內鏈結結果+主表中有而從表中沒有的記錄

2、左外連線:left join 左邊的是主表

右外連線:right join 右邊的是主表

3、左外和右外交換兩表的順序可以實現同樣的效果

*/-- ;案例:查詢男朋友不在男神錶中的女神名

-- 左外連線實現 (outer 可省略)

select be.name,bo.

*from beauty be

left

outer

join boys bo

on be.boyfriend_id=bo.id

where bo.id is

null

;-- 右外連線實現

select be.name,bo.

*from boys bo

right

outer

join beauty be

on be.boyfriend_id=bo.id

where bo.id is

null

;-- 案例: 查詢哪個部門沒有員工

-- 左外

select d.

*,employee_id

from departments d

left

outer

join employees e

on d.department_id=e.department_id

where employee_id is

null

;-- 左外

select d.

*,employee_id

from employees e

right

join departments d

on d.department_id=e.department_id

where employee_id is

null

;/*全外連線(mysql中不支援)

語法: use girls

select be.*,bo.*

from beauty be

full outer join boys bo

on be.boyfriend_id=bo.id;

*/

Mysql連表查詢(內連線 外連線)

建立兩張 並分別插入資料 create table ifnot exists left table id int auto increment,age int,name varchar 20 primary key id engine innodb default charset utf8 auto...

13 連線查詢

假設 a 表中有3條記錄,b表中有 4 條記錄 那麼,語句select from a,b 會將a,b兩張表的資料交叉拼接起來,形成 3 4 12 條記錄的結果集,此結果集叫做笛卡爾積。ora 00918 未明確定義列 改進辦法 明確列的所屬 select empno,ename,emp.deptno...

004 連線查詢

再大多數的情況下,我們都需要進行連線查詢.笛卡爾積的產生 這個就是多表查詢的的最初結果集,那麼以後我們需要作的就是從結果集中篩選出需要的結果集.篩選的方式不同,導致sql的效率不同.篩選的方式就是加入連線標準.等值連線 select 字段 from 表1 表2 where 連線條件.eg 查詢員工名...