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;
查詢結果如圖:
例二、
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';
查詢結果如圖:
總結
以上是生活随笔為你收集整理的mysql数据连接查询_mysql数据库 连接查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 茶颜悦色“被离职”员工发声:时薪低工作累
- 下一篇: jdbc连接mysql的语法_JDBC连