Как вставить значение в таблицу соединений - PullRequest
0 голосов
/ 23 марта 2019

Привет, у меня проблемы с вставкой данных в соединительную таблицу.

Мое обновление Query работает хорошо

sql = "UPDATE student_subject " & _
            " INNER JOIN subject_bsit " & _
            " ON subject_bsit.subject_id = student_subject.sub_id " & _
            " SET grade = "1" where student_subject.student_id= "1235" AND student_subject.sub_id = 1"

Это мой оператор SQL при вставке данных в соединительную таблицу, я сделал что-то не так, потому что я получаю синтаксическую ошибку

sql = "INSERT INTO student_subject (student_id,sub_id,grade) " & _
            " INNER JOIN student " & _
            " ON student.StudentID = student_subject.student_id " & _
            " VALUES ("1235","4","1.25")" & _
            " where student_subject.student_id= "1235""

То, что я хочу сделать, - это иметь studentID 1235 , чтобы иметь subject_id 4 , который является сетевым.

Это моя таблица базы данных

student Table

    -----------------------
    |studentID | FullName |
    -----------------------
    |1234      | John    |
    |1235      | Michael |
    |1236      | Bryce   |

"subject_bsit"

    -----------------------------------------
    |subject_id| subject_name  |  pre_id    |
    -----------------------------------------
    |    1     | Programming 1 |    NULL     |
    |    2     | Networking    |    NULL     |
    |    3     | Algorithm     |    NULL     |
    |    4     | Physical Educ |    NULL     |
    |    5     | Programming 2 |     1       |

This is the Junction table to connect the 
    two now.

"student_subject"

    -------------------------------------
    | student_id | subject_id | Grade   |
    -------------------------------------
    |   1235     |      1     |   NULL  |
    |   1235     |      2     |    2    |
    |   1235     |      3     |    1    |
    |   1234     |      1     |   2.25  |

1 Ответ

0 голосов
/ 23 марта 2019

У вас есть синтаксическая ошибка, поскольку вы неправильно используете оператор INSERT.

Подробнее см. Здесь https://dev.mysql.com/doc/refman/8.0/en/insert.html.

Вы можете использовать JOIN в вашем UPDATE выражении, потому что оно является частью параметра [where_clause].(https://dev.mysql.com/doc/refman/8.0/en/update.html)

Вы должны использовать INSERT INTO [table1] SELECT [column] FROM [table2], как показано ниже, для вставки значений в таблицу на основе значений, найденных в других таблицах.

INSERT INTO student_subject (student_id,sub_id,grade) 
SELECT student.StudentId, 4, null
FROM student
WHERE student.studentID = 1235;

вы можете добавить конкретный JOINоператор в операторе SELECT, следующий за строкой FROM student для фактического кода.

SQLFiddle

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