mysql 多表查詢

2021-07-04 02:22:44 字數 1238 閱讀 9764

-- 分享主題:mysql多表查詢

-- 本庫中表:act promotion item

-- left join:

select a.act_id,a.act_name,p.prmotion_desc from act a left join promotion p on a.act_id = p.act_id;

-- 查詢活動列表

select a.act_id,a.act_name,sum(if(i.act_id is null,0,1)) item_count from act a left join item i on a.act_id = i.act_id group by act_id;

select a.act_id,a.act_name,i.* from act a left join item i on a.act_id = i.act_id;

explain select a.act_id,a.act_name,i.title from act a left join item i on a.act_id = i.act_id where i.act_id is not null ;

-- right join

select a.*,i.* from act a right join item i on a.act_id = i.act_id;

-- inner join

select a.*,i.* from act a left join item i on a.act_id = i.act_id;

select a.*,i.* from act a inner join item i on a.act_id = i.act_id;

-- on a.c1 = b.c1 等同於 using(c1) 如果連線的兩個表連線條件的兩個列具有相同的名字

select a.*,i.* from act a inner join item i using (act_id);

-- inner join 和 , (逗號) 在語義上是等同的

select a.*,i.* from act a,item i ;

select a.*,i.* from act a inner join item i ;

select a.*,i.* from act a,item i where a.act_id = i.act_id;

-- 從左表讀出一條,選出所有與on匹配的右表紀錄(n條)進行連線,形成n條紀錄(包括重複的行,

mysql多表 MySQL 多表查詢

多表查詢 select listname from tablename1,tablename2 笛卡爾積 多表查詢中,如果沒有連線條件,則會產生笛卡爾積 數學中的定義 假設集合a 集合b 則兩個集合的笛卡爾積為 實際執行環境下,應避免使用笛卡爾積 解決方案 在where加入有效的連線條件 等值連線 ...

mysql多表查詢方式 MySQL多表查詢方式問題

你的 sql 沒有用到任何索引,對 a b 兩個表都是全表掃瞄,在資料量小的時候是沒有問題的,但是如果資料量超過 100 萬,效能問題就會突顯出來。這裡不清楚你的 created at 欄位是什麼型別,不過從你的 date format created at,y m d 看來,應該是 datetim...

mysql 多表查詢or MySQL 多表查詢

前期準備 建表create table dep id int,name varchar 20 create table emp id int primary key auto increment,name varchar 20 enum male female not null default ma...