链接查询:mysql
以一个共同的字段,求两张表当中符合条件的并集。 经过共同字段把这两张表链接起来。sql
经常使用的链接:ide
内链接:根据表中的共同字段进行匹配rem
外链接分两种:左外链接、右外连接。it
1内链接 语法:table
select 字段 from 表1 inner join 表2 on 表1.字段=表2.字段class
2 内链接:根据表中的共同字段进行匹配select
create table student(语法
sid int(4) primary key auto_increment,im
name varchar(50)
);
mysql> insert into student values(1,'张三'),(2,'mk'),(3,'jack'),(4,'tom');
建立年级表:grade
create table grade(
id int(4) primary key auto_increment,
score varchar(20),
sid int(4)
);
mysql> insert into grade (score,sid) values ('1231',3),('1231',4),('1231',5),('1231',6);
查询有的成绩的人的信息.
mysql> select student.*,grade.* from student,grade where student.sid=grade.sid;
或:
或:
mysql> select student.*,grade.* from student inner join grade on student.sid=grade.sid;
或:
mysql> select student.*,grade.* from student join grade on student.sid=grade.sid;
使用表别名,简写SQL语句
mysql> select s.*,g.* from student as s inner join grade as g on s.sid=g.sid;
3 外链接:现实某数据表的所有记录和另外表中符合链接条件的记录。
左链接: select 字段 from a表 left join b表 on 链接条件
a表是主表,都显示。
b表从表
主表内容全都有,从表内没有的现实null。
mysql> select * from student as s left join grade as g on s.sid=g.sid;
右链接:
select 字段 from a表 right join b表 on 条件
a表是从表,都显示。
b表主表
select * from student as s right join grade as g on s.sid=g.sid;
grade表为主表,所有记录显示出来,student为从表。不匹配的地方以NULL显示
右链接,能够多表链接
注意:有链接多表链接 是 前两个表链接后 成为从表 ,在和第三个表链接。