鏈接查詢: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顯示
右鏈接,能夠多表鏈接
注意:有鏈接多表鏈接 是 前兩個錶鏈接後 成爲從表 ,在和第三個錶鏈接。