Heim > Datenbank > MySQL-Tutorial > mysql连接查询_MySQL

mysql连接查询_MySQL

WBOY
Freigeben: 2016-06-01 12:58:47
Original
949 Leute haben es durchsucht

一:新建两张表

student表

 

CREATE TABLE student(

idINT PRIMARY KEY AUTO_INCREMENT,

snameVARCHAR(20) NOT NULL

);

SELECT * FROM student;

INSERT INTO student VALUES (1,'张三'),(2,'李四'),(3,'王五');

 

 

course表

 

CREATE TABLE course(

idINT PRIMARY KEY,

cnameVARCHAR(20) NOT NULL

);

SELECT * FROM course;

INSERT INTO course VALUES (1,'足球'),(2,'音乐'),(4,'美术');

 

二:外连接

外连接可分为:左连接、右连接、完全外连接。

1. 左连接 left join或者left outer join

SELECT * FROM student LEFT JOIN course ONstudent.id=course.id;

 

id sname id cname

1 张三 1 足球

2 李四 2 音乐

3 王五 \N \N

 

左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空(NULL).

注:此时我们不能说结果的行数等于左表数据的行数。当然此处查询结果的行数等于左表数据的行数,因为左右两表此时为一对一关系。

 

2.右连接 right join 或 right outer join

SELECT * FROM student RIGHT JOIN course ONstudent.id=course.id;

 

id sname id cname

1 张三 1 足球

2李四 2音乐

\N \N 4美术

 

右外连接包含right join右表所有行,如果左表中某行在右表没有匹配,则结果中对应左表的部分全部为空(NULL)。

注:同样此时我们不能说结果的行数等于右表的行数。当然此处查询结果的行数等于左表数据的行数,因为左右两表此时为一对一关系。

 

2. 完全外连接 full join 或 full outer join

 

SELECT * FROM student FULL JOIN course;

idsnameidcname

1张三1足球

2李四1足球

3王五1足球

1张三2音乐

2李四2音乐

3王五2音乐

1张三4美术

2李四4美术

3王五4美术

 

三:内连接join或者inner join

SELECT * FROM student INNER JOIN course ONstudent.id=course.id;

 

idsnameidcname

1张三1足球

2李四2音乐

 

inner join 是比较运算符,只返回符合条件的行。

此时相当于:select * from student,course where student.id=course.id

 

四:交叉连接cross join

SELECT * FROM student CROSS JOIN course;

 

idsnameidcname

1张三1足球

2李四1足球

3王五1足球

1张三2音乐

2李四2音乐

3王五2音乐

1张三4美术

2李四4美术

3王五4美术

 

如果我们在此时给这条SQL加上WHERE子句的时候比如SQL:select * from student cross join course wherestudent.id=course.id

此时将返回符合条件的结果集,结果和inner join所示执行结果一样。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage