mysql数据连接查询_mysql数据库 连接查询

左连接:

select 列1,列2,列N from

tableA left  join tableB

on tableA.列 = tableB   【此次表连接成一张大表,完全当成普通表看】

where group ,having...照常写

例:select goods_id,goods.cat_id,cat_name,goods_name,shop_price from goods left join category on goods.cat_id = category.cat_id;

右连接:

select 列1,列2,列N from

tableA right join tableB

on tableA.列 = tableB   【此次表连接成一张大表,完全当成普通表看】

where group ,having...照常写

左右连接:

以左表为准,去右表找匹配数据,找不到匹配,用NULL补齐

如何记忆:

1:左右连接可以相互优化

2:可以把右连接转换为左连接来使用(并推荐使用左连接代替右连接,兼容性好一些)

A站在B的左边  ====> B站在A的右边

A left join B =====> B right join A

例:

select girl.*,boy.* from boy right join girl on girl.flower = boy.flower;

内连接:

select 列1,列2,列N from

tableA inner join tableB

on tableA.列 = tableB   【此次表连接成一张大表,完全当成普通表看】

where group ,having...照常写

内连接:查询左右表都有的数据,即:不要左/右中的NULL的那一部分

内连接是:左,右连接的交集

例:select boy.*,girl.* from boy inner join girl on boy.flower = girl.flower;

练习:

三表联查

例:

例一、

select goods_id,goods.cat_id,cat_name,brand.brand_id,brand_name,goods_name

from

goods left join category on goods.cat_id = category.cat_id // 这里把他看成一个整体的表

left join brand on goods.brand_id = brand.brand_id;

查询结果如图:

0818b9ca8b590ca3270a3433284dd417.png

例二、

create table m(

mid int primary key auto_increment,

hid int,

gid int,

mres varchar(10),

matime date

)charset utf8;

insert into m

(hid,gid,mres,matime)

values

(1,2,'2:0','2006-05-21'),

(2,3,'1:2','2006-06-21'),

(3,1,'2:5','2006-06-25'),

(2,1,'3:2','2006-07-21');

create table t(

tid int,

tname varchar(10)

)charset utf8;

insert into t

values

(1,'国安'),

(2,'申花'),

(3,'传智连队');

select hid,t1.tname as hname,mres,gid,t2.tname as gname,matime

from

m left join t as t1

on m.hid = t1.tid

left join t as t2

on m.gid = t2.tid

where matime between '2006-06-01' and '2006-07-01';

查询结果如图:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值