1、內聯查詢
>inner join 或 join
2、外聯查詢
(1)左連線
>left outer join 或 left join
(2)右連線
>right outer join 或 right join
(3)完全外連線
>full outer join 或 full join
**詳解:
1、資料準備
(1)建立一個新的資料庫
>create database testjoin;
(2)建立兩個表person、card
>create table person(
-> id int ,
-> name varchar(20),
-> cardid int);
>create table card(
-> id int,
-> name varchar(20));
(3)新增資料
>insert into card values (1,'飯卡');
>insert into card values (2,'建行卡');
>insert into card values (3,'農行卡');
>insert into card values (4,'工商卡');
>insert into card values (5,'郵政卡');
>insert into person values (1,'張三',1);
>insert into person values (2,'李四',3);
>insert into person values(3,"王五",6);
2、查詢
——上述兩個表並沒有建立外來鍵
(1)inner join查詢
>select * from person inner join card on person.cardid = card.id;
【注】內聯查詢,其實就是查詢兩張表中相等的資料(有關聯的資料,上述是cardid對應card.id)
(2)left join (左外連線)
> select * from person left join card on person.cardid = card.id;
【注】左外連線就是將寫在left join左側的表的資料全部取出來而右側的資料有的取出來如果沒有補上null
(3)right join (右外連線)
>select * from card right join person on person.cardid = card.id;
【注】右外連線就是將寫在right join右側的表的資料全部取出來而左側的資料有的取出來如果沒有補上null
(4)full join(全外連線)
> select * from card full join person on person.cardid = card.id;
上述可知:mysql是不支援全連線的,可以通過將左連線與右連線用union加起來的方式:
>select * from card right join person on person.cardid = card.id union select * from card left join person on person.cardid = card.id;
【注】如上圖:會將左邊右邊的表的資料全部顯示出來,彼此之間沒有的彼此間補null
mysql的連線查詢
只說連線查詢,不說子查詢 內連線 等值連線 非等值連線 交叉連線 a 表有n 行,b表有m 行 結果集中有n m 行 自身連線 需要使用別名 經典的查詢每門課的間接先修課 select first.cno,second.cpno from course first,course second whe...
MySQL的連線查詢
左表資料表結構 drop table if exists employee tbl create table employee tbl id int 11 not null,name char 10 not null default date datetime not null,singin tin...
mysql連線查詢
以前查詢都是隨便查到結果就行了,因為發現每次查詢的數量都很少,當然現在也是。不過效率一直是程式設計師執著的追求,我就多瞭解下差距。首先是多張表聯合,一張模板種類category,一張模板表template,一張櫥窗表shopwin,一張櫥窗型別表type 現在要查詢一個櫥窗型別為1,即shopwin...