代码之家  ›  专栏  ›  技术社区  ›  chefsmart

mysql-如何在一个表中插入数据,该表包含其他3个表的矩阵

  •  1
  • chefsmart  · 技术社区  · 15 年前

    teacher , subject ,和 class ,每个表只有两个字段 id name

    如果每个老师都能教每门课的每门课,那么如果我的第四个表有三个字段用于 teacher_id , subject_id class_id

    举个例子说明一下,如果我只有两个老师(teacher.id 1和2)、两个科目(subject.id 1和2)和两个班级(class.id 1和2),那么第四个表中的数据如下所示。

    teacher_id  subject_id  class_id
        1           1           1
        1           1           2
        1           2           1
        1           2           2
        2           1           1
        2           1           2
        2           2           1
        2           2           2
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   Jaydee    15 年前

    好像你在看交叉连接或笛卡尔积。

    http://en.wikipedia.org/wiki/Join_%28SQL%29#Cross_join

    SELECT teacher_id, subject_id, class_id 
        FROM teacher JOIN subject JOIN class 
        ORDER BY teacher_id, subject_id, class_id
    

    对于大型数据集,这可能需要一段时间才能返回。

        2
  •  1
  •   Yada    15 年前

    用教师表、科目表、班级表的笛卡尔积的子集进行插入。

    INSERT INTO fourth_table
    (SELECT * FROM teacher, subject, class)