MySQL - как вставить данные в таблицу, которая содержит матрицу из 3 других таблиц - PullRequest
1 голос
/ 10 ноября 2010

Допустим, у меня есть 3 таблицы mysql - teacher, subject и class, каждая таблица имеет только два поля id и name

Если каждый учитель может преподавать каждый предметВ каждом классе, как правильно вставить эту информацию, используя SQL, в четвертую таблицу для хранения этих данных, если в моей четвертой таблице есть три поля для 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 ]

1 голос
/ 10 ноября 2010

Сделайте вкладыш с подвыбором декартового произведения учителя, предметных, классных таблиц.

INSERT INTO fourth_table
(SELECT * FROM teacher, subject, class)
0 голосов
/ 10 ноября 2010

Похоже, вы смотрите на перекрестное соединение или декартово произведение.

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

Для больших наборов данных это может занять некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...