标题:mysql学习第11天right join inner join用法

-------------------------------------------------------------------------------------------------------------------------------

时间:2012/4/28 13:03:09

-------------------------------------------------------------------------------------------------------------------------------

内容:

create table boy
(name varchar(10),flower varchar(10)) character set utf8;
insert into boy
values
('谢霆锋','菊花'),
('吴宗宪','梅花'),
('刘德华','桃花'),
('周润发','玫瑰'),
('小沈阳','没钱花');

 

create table girl
(name varchar(10),flower varchar(10)) character set utf8;


insert into girl
values
('张柏芝','菊花'),
('张静初','玫瑰'),
('邱淑贞','桃花'),
('张柏芝','玫瑰'),
('空姐','菊花'),
('小泽玛莉亚','玫瑰'),
('范冰冰','茉莉');

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


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


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

 

 

解读一个误区 left join不是excel的 vlookup

如果是主表在附表有2行以上匹配的时候 他会全部列出来 主表会重复

比如主表10行数据 附表10个行数 最后的表的数据大于等于10行 主表没配对上的留空

主表多配对的列出来多有配对的情况

inner join就是删掉了没有配对的情况

create table boy
(name varchar(10),flower varchar(10)) character set utf8;
insert into boy
values
('谢霆锋','菊花'),
('吴宗宪','梅花'),
('刘德华','桃花'),
('周润发','玫瑰'),
('小沈阳','没钱花');

 

create table girl
(name varchar(10),flower varchar(10)) character set utf8;


insert into girl
values
('张柏芝','菊花'),
('张静初','玫瑰'),
('邱淑贞','桃花'),
('张柏芝','玫瑰'),
('空姐','菊花'),
('小泽玛莉亚','玫瑰'),
('范冰冰','茉莉');

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


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


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

 

 

解读一个误区 left join不是excel的 vlookup

如果是主表在附表有2行以上匹配的时候 他会全部列出来 主表会重复

比如主表10行数据 附表10个行数 最后的表的数据大于等于10行 主表没配对上的留空

主表多配对的列出来多有配对的情况

inner join就是删掉了没有配对的情况