MySQL中的幾種join總結

2021-09-27 01:56:33 字數 1153 閱讀 3383

// an highlighted block

/*join 建表語句*/

drop database if exists test;

create database test;

use test;

/* 左表t1*/

drop table if exists t1;

create table t1

(id int not null

,name varchar(20

));insert into t1 values(1

,'t1a');

insert into t1 values(2

,'t1b');

insert into t1 values(3

,'t1c');

insert into t1 values(4

,'t1d');

insert into t1 values(5

,'t1f');

/* 右表 t2*/

drop table if exists t2;

create table t2

(id int not null

,name varchar(20

));insert into t2 values(2

,'t2b');

insert into t2 values(3

,'t2c');

insert into t2 values(4

,'t2d');

insert into t2 values(5

,'t2f');

insert into t2 values(6

,'t2a'

);

兩表關聯,把左表的列和右表的列通過笛卡爾積的形式表達出來。

兩表關聯,左表全部保留,右表關聯不上用null表示。

sql中的幾種join 及 full join問題

注意 oracle資料庫支援full join,mysql是不支援full join的,但仍然可以同過左外連線 union 右外連線實現 初始化sql語句 join 建表語句 drop database ifexists test create database test use test 左表t1...

理解mysql中的join

1 兩表join時要小表驅動大表,為什麼?user表10000條資料,class表20條資料 select from user u left join class c on u.userid c.userid 上面的結果是迴圈10000次,每次獲取user的userid到class中找與user表u...

mysql中join的選擇(mysql每日一講)

條件 a表100行資料 b表100行資料 假如 a join b on a.欄位1 b.欄位2 此時驅動表是a表,被驅動表示b表 1 假如b表上字段2建立了索引 那麼a表作為驅動表將會逐行掃瞄,掃瞄100次,b表上字段2有索引,因此a表每一行會讀b表的一行,這樣總掃瞄次數是100 100 200次 ...