如何使用select命令将3个不同表中的数据插入到一个表中

萨拜克刹车

这是我的桌子

eleve

+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| idEleve        | int(11)     | NO   | PRI | NULL    |       |
| NomEleve       | varchar(30) | YES  |     | NULL    |       |
| PrenomEleve    | varchar(30) | YES  |     | NULL    |       |
| DateNaissEleve | date        | YES  |     | NULL    |       |
| LieuNaissEleve | varchar(30) | YES  |     | NULL    |       |
| codeClasse     | varchar(30) | YES  | MUL | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> select *from eleve ;
+---------+-----------+-------------+----------------+----------------+------------+
| idEleve | NomEleve  | PrenomEleve | DateNaissEleve | LieuNaissEleve | codeClasse |
+---------+-----------+-------------+----------------+----------------+------------+
|       1 | brahim    | elmoctar    | 1996-08-19     | teyaret        | CP1        |
|       2 | mohamed   | elmoctar    | 2000-02-01     | teyaret        | CP2        |
|       3 | fatimetou | elmoctar    | 1995-05-19     | teyaret        | CP3        |
+---------+-----------+-------------+----------------+----------------+------------+

note

mysql> desc note ;
+-------------------+---------+------+-----+---------+-------+
| Field             | Type    | Null | Key | Default | Extra |
+-------------------+---------+------+-----+---------+-------+
| idAffectationProf | int(11) | YES  | MUL | NULL    |       |
| idEleve           | int(11) | YES  | MUL | NULL    |       |
| NoteTrimester1    | double  | YES  |     | NULL    |       |
| NoteTrimester2    | double  | YES  |     | NULL    |       |
| NoteTrimester3    | double  | YES  |     | NULL    |       |
+-------------------+---------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select * from note ;
+-------------------+---------+----------------+----------------+----------------+
| idAffectationProf | idEleve | NoteTrimester1 | NoteTrimester2 | NoteTrimester3 |
+-------------------+---------+----------------+----------------+----------------+
|                 1 |       1 |          13.24 |          12.45 |          10.54 |
|                 2 |       1 |          10.24 |          17.45 |          18.54 |
|                 3 |       1 |          15.24 |          12.45 |          13.54 |
+-------------------+---------+----------------+----------------+----------------+
3 rows in set (0.00 sec)

affectationMatiere

mysql> desc affectationMatiere ;
+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| idAffectationProf | int(11)     | NO   | PRI | NULL    |       |
| codeClasse        | varchar(30) | YES  | MUL | NULL    |       |
| idProf            | int(11)     | YES  | MUL | NULL    |       |
| codeMat           | varchar(30) | YES  | MUL | NULL    |       |
| Annee             | date        | YES  |     | NULL    |       |
+-------------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select *from affectationMatiere ;
+-------------------+------------+--------+---------+------------+
| idAffectationProf | codeClasse | idProf | codeMat | Annee      |
+-------------------+------------+--------+---------+------------+
|                 1 | CP1        |      1 | Math    | 2020-01-01 |
|                 2 | CP2        |      2 | PC      | 2020-02-02 |
|                 3 | CP3        |      1 | SN      | 2020-03-03 |
+-------------------+------------+--------+---------+------------+
3 rows in set (0.00 sec)

moyenne

mysql> desc moyenne ;
+---------------------+---------+------+-----+---------+-------+
| Field               | Type    | Null | Key | Default | Extra |
+---------------------+---------+------+-----+---------+-------+
| idEleve             | int(11) | YES  | MUL | NULL    |       |
| Annee               | date    | NO   | PRI | NULL    |       |
| moyenneGlobaleEleve | double  | YES  |     | NULL    |       |
+---------------------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

我想表格中插入idEleveAnnee和每个学生的平均moyenne分数。

这是我的查询:

INSERT INTO moyenne 
    SELECT E.idEleve,a.Annee, (note.NoteTrimester1 + note.NoteTrimester2 + note.NoteTrimester3)/3 AS NoteGlobal FROM eleve E,affectMatiere a, note;

但不幸的是,该请求返回了27个结果,而不是3个结果。突然间,我执行了没有插入到其中的请求,这就是我发现的结果

mysql> SELECT E.idEleve,a.Annee, (note.NoteTrimester1 + note.NoteTrimester2 + note.NoteTrimester3)/3 AS NoteGlobal FROM eleve E,affectationMatiere a, note;
+---------+------------+--------------------+
| idEleve | Annee      | NoteGlobal         |
+---------+------------+--------------------+
|       1 | 2020-01-01 | 12.076666666666666 |
|       2 | 2020-01-01 | 12.076666666666666 |
|       3 | 2020-01-01 | 12.076666666666666 |
|       1 | 2020-02-02 | 12.076666666666666 |
|       2 | 2020-02-02 | 12.076666666666666 |
|       3 | 2020-02-02 | 12.076666666666666 |
|       1 | 2020-03-03 | 12.076666666666666 |
|       2 | 2020-03-03 | 12.076666666666666 |
|       3 | 2020-03-03 | 12.076666666666666 |
|       1 | 2020-01-01 | 15.409999999999998 |
|       2 | 2020-01-01 | 15.409999999999998 |
|       3 | 2020-01-01 | 15.409999999999998 |
|       1 | 2020-02-02 | 15.409999999999998 |
|       2 | 2020-02-02 | 15.409999999999998 |
|       3 | 2020-02-02 | 15.409999999999998 |
|       1 | 2020-03-03 | 15.409999999999998 |
|       2 | 2020-03-03 | 15.409999999999998 |
|       3 | 2020-03-03 | 15.409999999999998 |
|       1 | 2020-01-01 | 13.743333333333332 |
|       2 | 2020-01-01 | 13.743333333333332 |
|       3 | 2020-01-01 | 13.743333333333332 |
|       1 | 2020-02-02 | 13.743333333333332 |
|       2 | 2020-02-02 | 13.743333333333332 |
|       3 | 2020-02-02 | 13.743333333333332 |
|       1 | 2020-03-03 | 13.743333333333332 |
|       2 | 2020-03-03 | 13.743333333333332 |
|       3 | 2020-03-03 | 13.743333333333332 |
+---------+------------+--------------------+
27 rows in set (0.00 sec)
专线小巴

查询的主要问题是您缺少表之间的连接条件:这导致3个表之间的笛卡尔积。请注意,就顾虑而言,您无需引入eleve表即可生成预期结果集。

另外,我认为你需要聚集,聚集在一起的每个(笔记eleveannee在所有)codeMat秒。

我认为以下查询可以满足您的需求:

insert into moyenne 
select 
    n.idEleve,
    a.Annee, 
    avg(n.NoteTrimester1 + n.NoteTrimester2 + n.NoteTrimester3)/3 
from 
    note n
    inner join affectMatiere a on a.idAffectationProf = n.idAffectationProf
group by 
    n.idEleve,
    a.Annee

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite:如何使用SELECT在一个表中的列中检索数据,以将检索到的数据插入另一表中

来自分类Dev

oracle 将两个不同表中的记录插入到一个表中

来自分类Dev

将两个表中的数据插入到另一个表中

来自分类Dev

如何通过单击将数据插入到两个表中,而在另一个表中使用第一个查询ID

来自分类Dev

如何使用SQL将具有不同选择条件的多列插入到另一个表中

来自分类Dev

如何使用 PHP 和 MYSQL 将数据插入到两个不同的表中

来自分类Dev

如何在一个命令中将一个表中的自动递增 id 插入到另一个表中(使用返回)?

来自分类Dev

将一个表中的不同值插入到另一个表中

来自分类Dev

将数据库中一个表中的特定行插入到另一个具有不同列的表中

来自分类Dev

如何使用php将两个不同的复选框值插入到一个mysql表的不同列中?

来自分类Dev

SQL将数据从另一个表插入到表中

来自分类Dev

如何使用 SQL TRIGGER 将另一个表中的行插入到新表中?

来自分类Dev

使用where条件将表中的数据插入MySQL中的另一个表

来自分类Dev

如何将数据从一个表插入和检索到mysql数据库中的另一个表

来自分类Dev

将多个程序中的数据插入到一个表中可以吗?

来自分类Dev

将多个程序中的数据插入到一个表中可以吗?

来自分类Dev

如何用另一个过程将数据插入到存储过程中的临时表中?

来自分类Dev

使用数组将数据一次插入3个表中到Postgresql数据库中

来自分类Dev

将一个数据库表中的行插入另一个数据库中的两个不同表中

来自分类Dev

如何根据另一个表上的条件将数据插入表中

来自分类Dev

使用pyspark将数据从pyspark数据帧插入到另一个cassandra表中

来自分类Dev

从两个不同的表插入到一个表中

来自分类Dev

从2个表中获取数据并插入到另一个表中

来自分类Dev

SQL将表中的行插入到表中,该表必须具有2个不同的列,但也必须具有一个非不同的列

来自分类Dev

当 4 个查询的数据不唯一时,如何将 4 个查询的数据插入到一个表中?

来自分类Dev

如何在另一个表中插入不同的数据类型

来自分类Dev

从表的列中插入数据,然后将另一个表存储到列中

来自分类Dev

将数据行从C#中的另一个sql表插入到sql表中

来自分类Dev

Scala + Slick 3:将一个查询的结果插入到另一个表中

Related 相关文章

  1. 1

    SQLite:如何使用SELECT在一个表中的列中检索数据,以将检索到的数据插入另一表中

  2. 2

    oracle 将两个不同表中的记录插入到一个表中

  3. 3

    将两个表中的数据插入到另一个表中

  4. 4

    如何通过单击将数据插入到两个表中,而在另一个表中使用第一个查询ID

  5. 5

    如何使用SQL将具有不同选择条件的多列插入到另一个表中

  6. 6

    如何使用 PHP 和 MYSQL 将数据插入到两个不同的表中

  7. 7

    如何在一个命令中将一个表中的自动递增 id 插入到另一个表中(使用返回)?

  8. 8

    将一个表中的不同值插入到另一个表中

  9. 9

    将数据库中一个表中的特定行插入到另一个具有不同列的表中

  10. 10

    如何使用php将两个不同的复选框值插入到一个mysql表的不同列中?

  11. 11

    SQL将数据从另一个表插入到表中

  12. 12

    如何使用 SQL TRIGGER 将另一个表中的行插入到新表中?

  13. 13

    使用where条件将表中的数据插入MySQL中的另一个表

  14. 14

    如何将数据从一个表插入和检索到mysql数据库中的另一个表

  15. 15

    将多个程序中的数据插入到一个表中可以吗?

  16. 16

    将多个程序中的数据插入到一个表中可以吗?

  17. 17

    如何用另一个过程将数据插入到存储过程中的临时表中?

  18. 18

    使用数组将数据一次插入3个表中到Postgresql数据库中

  19. 19

    将一个数据库表中的行插入另一个数据库中的两个不同表中

  20. 20

    如何根据另一个表上的条件将数据插入表中

  21. 21

    使用pyspark将数据从pyspark数据帧插入到另一个cassandra表中

  22. 22

    从两个不同的表插入到一个表中

  23. 23

    从2个表中获取数据并插入到另一个表中

  24. 24

    SQL将表中的行插入到表中,该表必须具有2个不同的列,但也必须具有一个非不同的列

  25. 25

    当 4 个查询的数据不唯一时,如何将 4 个查询的数据插入到一个表中?

  26. 26

    如何在另一个表中插入不同的数据类型

  27. 27

    从表的列中插入数据,然后将另一个表存储到列中

  28. 28

    将数据行从C#中的另一个sql表插入到sql表中

  29. 29

    Scala + Slick 3:将一个查询的结果插入到另一个表中

热门标签

归档