MySQL中的连接 Join In MySQL

有两个表,如下:

mysql> SELECT * FROM Class;
+———-+——–+
| Class_ID | Name   |
+———-+——–+
|                1 | 2008A  |
|                2 | 2008B  |
|                3 | 2008C |
+———-+——–+
3 rows in set (0.00 sec)

mysql> SELECT * FROM Student;
+————+——-+———-+——— —-+
| Student_ID | Name  | Class_ID | Student_Age |
+————+——-+———-+——- ——+
|                    1 | Jack    |                 1 |           NULL |
|                   2 | Lucy     |                 0 |           NULL |
|                    3 | Join     |                1 |            NULL |
|                    4 | Tom   |                 2 |            NULL |
+————+——-+———-+————- +
4 rows in set (0.00 sec)

即: 有三个班级 分别为2008A, 2008B.,2008C 有4个学生 , 其中, Jack, Join为2008A班的学生,Tom为2008B班的学生, 而Lucy则不在任何班级中.

INNER JOIN:


mysql> SELECT * FROM Student s INNER JOIN Class c ON s.Class_ID = c.Class_ID;
+————+——+———-+————-+———-+——-+
| Student_ID | Name | Class_ID | Student_Age | Class_ID | Name  |
+————+——+———-+————-+———-+——-+
|          1 | jack |        1 |        NULL |        1 | 2008A |
|          3 | Join |        1 |        NULL |        1 | 2008A |
|          4 | Tom  |        2 |        NULL |        2 | 2008B |
+————+——+———-+————-+———-+——-+
3 rows in set (0.06 sec)

OUTER JOINs:

Left Outer Join:左外连接
mysql> SELECT * FROM Student s LEFT OUTER JOIN Class c ON s.Class_ID = c.Class_ID;
+————+——+———-+————-+———-+——-+
| Student_ID | Name | Class_ID | Student_Age | Class_ID | Name  |
+————+——+———-+————-+———-+——-+
|          1 | jack |        1 |        NULL |        1 | 2008A |
|          2 | Lucy |        0 |        NULL |     NULL | NULL  |
|          3 | Join |        1 |        NULL |        1 | 2008A |
|          4 | Tom  |        2 |        NULL |        2 | 2008B |
+————+——+———-+————-+———-+——-+
4 rows in set (0.00 sec)

Right Outer Join:右外连接
 
mysql> SELECT * FROM Student s RIGHT OUTER JOIN Class c ON s.Class_
+————+——+———-+————-+———-+——-+
| Student_ID | Name | Class_ID | Student_Age | Class_ID | Name  |
+————+——+———-+————-+———-+——-+
|          1 | jack |        1 |        NULL |        1 | 2008A |
|          3 | Join |        1 |        NULL |        1 | 2008A |
|          4 | Tom  |        2 |        NULL |        2 | 2008B |
|       NULL | NULL |     NULL |        NULL |        3 | 2008C |
+————+——+———-+————-+———-+——-+
4 rows in set (0.00 sec)

Full Outer Join:

This entry was posted in 其他技术 and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>