- 多表查询:多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join)
- 数据准备:
结果为:#user_info表 create table user_info( id int(2) primary key, user_name varchar(12) unique, password varchar(15) not null, real_name varchar(8) not null, age int(3) ); #address表 create table address( id int(2) primary key, user_id int(2) not null, real_name varchar(8), mobile char(11), address varchar(150) ); insert into user_info values(1,'浅唱灬幸福','8912@321','王晓明',12); insert into address values(1,1,'王小明','15516472282','山西太原'); insert into address values(2,1,'王鑫','18404905139','山西大同'); insert into address values(3,1,'任建','15333021730','山西晋城'); insert into user_info values(2,'ぅ浮生若梦〤','56701wz','王楠',36); insert into address values(4,2,'王楠','15010303314','北京海淀'); insert into address values(5,2,'赵婕','18435224278','山西长治'); insert into user_info values(3,'街角の风铃','27w4921','李晓飞',9); insert into address values(6,6,'刘倩','13159775555','吉林长春');
- 内连接:显示所有表中满足ON关键字后面条件的记录,INNER关键字可以省略,例:
结果为:SELECT ui.*,addr.* FROM user_info ui INNER JOIN address addr ON ui.id = addr.user_id;
- 外联接:外联接又分为左外联接(左连接)和右外连接(右连接),关键字RIGHT可以省略
- 左外连接:关键字LEFT左边表中的数据全部显示,关键字LEFT右边表中的数据只显示满足ON关键字后面条件的数据,例:
结果为:SELECT ui.*,addr.* FROM user_info ui LEFT OUTER JOIN address addr ON ui.id = addr.user_id;
- 右外连接:关键字RIGHT右边表中的数据全部显示,关键字RIGHT左边表中的数据只显示满足ON关键字后面条件的数据,例:
结果为:SELECT ui.*,addr.* FROM user_info ui RIGHT OUTER JOIN address addr ON ui.id = addr.user_id;
注:内外连接不仅限于两个表,可以是多个表联查
【MySql】第十节 多表查询
最新推荐文章于 2021-03-19 17:30:19 发布