Loading

mariadb 数据查询:多表内外连接查询

一,数据库的连接查询类型

1,多表查询

1)cross join  交叉连接,即笛卡尔连接(无实际意义)

1 MariaDB [hellodb]> select  *  from  students   cross join  teachers  ;

2)内连接:两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录

分类:

>等值连接   连接条件中使用等于号(=)运算符比较被连接列的列值

>不等连接   连接条件使用    >、>=、<=、<、!>、!<和<>    运算符

> 自然连接    不需要使用运算符匹配条件,隐含了某一列名称相同 的条件,可自动清除重复行

MariaDB [hellodb]> select  *  from  students  as s  inner join  teachers  as  t  on s.teacherid = t.tid  ;

3) 自连接  :一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表

如某一员工表包含所属上级领导列, 既是员工又是领导的情况。

真实含义为:从s2表中拿出第一行,根据指定条件分别与s1表的每一行向比对,如果条件满足,就附加到该行之后,依次对比。

对比时需要改变表名为别名,不然报错。

 1 MariaDB [hellodb]> select    * from  students as s1  join students as s2  on  s1.classid=s2.classid   ;
 2 +-------+---------------+-----+--------+---------+-----------+-------+---------------+-----+--------+---------+-----------+
 3 | StuID | Name          | Age | Gender | ClassID | TeacherID | StuID | Name          | Age | Gender | ClassID | TeacherID |
 4 +-------+---------------+-----+--------+---------+-----------+-------+---------------+-----+--------+---------+-----------+
 5 |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
 6 |     3 | Xie Yanke     |  53 | M      |       2 |        16 |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
 7 |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
 8 |     2 | Shi Potian    |  22 | M      |       1 |         7 |     2 | Shi Potian    |  22 | M      |       1 |         7 |
 9 |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |     2 | Shi Potian    |  22 | M      |       1 |         7 |
10 |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |     2 | Shi Potian    |  22 | M      |       1 |         7 |
11 |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |     2 | Shi Potian    |  22 | M      |       1 |         7 |
12 |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
13 |     3 | Xie Yanke     |  53 | M      |       2 |        16 |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
14 |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
15 |     4 | Ding Dian     |  32 | M      |       4 |         4 |     4 | Ding Dian     |  32 | M      |       4 |         4 |
16 |    15 | Duan Yu       |  19 | M      |       4 |      NULL |     4 | Ding Dian     |  32 | M      |       4 |         4 |
17 |    17 | Lin Chong     |  25 | M      |       4 |      NULL |     4 | Ding Dian     |  32 | M      |       4 |         4 |
18 |    23 | Ma Chao       |  23 | M      |       4 |      NULL |     4 | Ding Dian     |  32 | M      |       4 |         4 |
19 |     5 | Yu Yutong     |  26 | M      |       3 |         1 |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
20 |     7 | Xi Ren        |  19 | F      |       3 |      NULL |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
21 |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
22 |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
23 |     6 | Shi Qing      |  46 | M      |       5 |      NULL |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
24 |     5 | Yu Yutong     |  26 | M      |       3 |         1 |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
25 |     7 | Xi Ren        |  19 | F      |       3 |      NULL |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
26 |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
27 |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
28 |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
29 |    18 | Hua Rong      |  23 | M      |       7 |      NULL |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
30 |    20 | Diao Chan     |  19 | F      |       7 |      NULL |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
31 |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
32 |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
33 |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
34 |    21 | Huang Yueying |  22 | F      |       6 |      NULL |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
35 |     5 | Yu Yutong     |  26 | M      |       3 |         1 |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
36 |     7 | Xi Ren        |  19 | F      |       3 |      NULL |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
37 |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
38 |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
39 |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
40 |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
41 |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
42 |    21 | Huang Yueying |  22 | F      |       6 |      NULL |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
43 |     2 | Shi Potian    |  22 | M      |       1 |         7 |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
44 |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
45 |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
46 |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
47 |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
48 |     3 | Xie Yanke     |  53 | M      |       2 |        16 |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
49 |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
50 |     5 | Yu Yutong     |  26 | M      |       3 |         1 |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
51 |     7 | Xi Ren        |  19 | F      |       3 |      NULL |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
52 |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
53 |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
54 |     4 | Ding Dian     |  32 | M      |       4 |         4 |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
55 |    15 | Duan Yu       |  19 | M      |       4 |      NULL |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
56 |    17 | Lin Chong     |  25 | M      |       4 |      NULL |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
57 |    23 | Ma Chao       |  23 | M      |       4 |      NULL |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
58 |     2 | Shi Potian    |  22 | M      |       1 |         7 |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
59 |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
60 |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
61 |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
62 |     4 | Ding Dian     |  32 | M      |       4 |         4 |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
63 |    15 | Duan Yu       |  19 | M      |       4 |      NULL |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
64 |    17 | Lin Chong     |  25 | M      |       4 |      NULL |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
65 |    23 | Ma Chao       |  23 | M      |       4 |      NULL |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
66 |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
67 |    18 | Hua Rong      |  23 | M      |       7 |      NULL |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
68 |    20 | Diao Chan     |  19 | F      |       7 |      NULL |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
69 |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
70 |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
71 |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
72 |    21 | Huang Yueying |  22 | F      |       6 |      NULL |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
73 |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
74 |    18 | Hua Rong      |  23 | M      |       7 |      NULL |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
75 |    20 | Diao Chan     |  19 | F      |       7 |      NULL |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
76 |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
77 |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
78 |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
79 |    21 | Huang Yueying |  22 | F      |       6 |      NULL |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
80 |     2 | Shi Potian    |  22 | M      |       1 |         7 |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
81 |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
82 |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
83 |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
84 |     4 | Ding Dian     |  32 | M      |       4 |         4 |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
85 |    15 | Duan Yu       |  19 | M      |       4 |      NULL |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
86 |    17 | Lin Chong     |  25 | M      |       4 |      NULL |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
87 |    23 | Ma Chao       |  23 | M      |       4 |      NULL |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
88 +-------+---------------+-----+--------+---------+-----------+-------+---------------+-----+--------+---------+-----------+
89 83 rows in set (0.00 sec

4)外连接

       需要有条件判定即where限定,数据表之间有相关字段关联

       left join(左联接)    返回包括左表中的所有记录和右表中联结字段相等的记录 
  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

5) 联合查询  union

查询的表为不同的字段,然后统一输出,先后顺序与查询的表先后顺序有关。

 1 MariaDB [hellodb]> select   name,age,gender   from  teachers   union  select name,age,gender  from  students  ;
 2 +---------------+-----+--------+
 3 | name          | age | gender |
 4 +---------------+-----+--------+
 5 | Song Jiang    |  45 | M      |
 6 | Zhang Sanfeng |  94 | M      |
 7 | Miejue Shitai |  77 | F      |
 8 | Lin Chaoying  |  93 | F      |
 9 | Shi Zhongyu   |  22 | M      |
10 | Shi Potian    |  22 | M      |
11 | Xie Yanke     |  53 | M      |
12 | Ding Dian     |  32 | M      |
13 | Yu Yutong     |  26 | M      |
14 | Shi Qing      |  46 | M      |
15 | Xi Ren        |  19 | F      |
16 | Lin Daiyu     |  17 | F      |
17 | Ren Yingying  |  20 | F      |
18 | Yue Lingshan  |  19 | F      |
19 | Yuan Chengzhi |  23 | M      |
20 | Wen Qingqing  |  19 | F      |
21 | Tian Boguang  |  33 | M      |
22 | Lu Wushuang   |  17 | F      |
23 | Duan Yu       |  19 | M      |
24 | Xu Zhu        |  21 | M      |
25 | Lin Chong     |  25 | M      |
26 | Hua Rong      |  23 | M      |
27 | Xue Baochai   |  18 | F      |
28 | Diao Chan     |  19 | F      |
29 | Huang Yueying |  22 | F      |
30 | Xiao Qiao     |  20 | F      |
31 | Ma Chao       |  23 | M      |
32 | Xu Xian       |  27 | M      |
33 | Sun Dasheng   | 100 | M      |
34 +---------------+-----+--------+
35 29 rows in set (0.00 sec)

 

posted @ 2019-04-29 21:07  Lust4Life  阅读(665)  评论(0)    收藏  举报