Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何为学生成绩更新连接表中的行_Mysql_Sql_Database_Vb.net_Phpmyadmin - Fatal编程技术网

Mysql 如何为学生成绩更新连接表中的行

Mysql 如何为学生成绩更新连接表中的行,mysql,sql,database,vb.net,phpmyadmin,Mysql,Sql,Database,Vb.net,Phpmyadmin,我又来了。 非常感谢你的帮助 这是我的老问题,关于如何在连接表中选择和显示学生的成绩 我成功地做到了,但是现在我在更新连接表中的等级时遇到了问题 这是我的示例表 "student" ----------------------- |studentID | FullName | ----------------------- |1234 | John | |1235 | Michael | |1236 | Bryce | "sub

我又来了。 非常感谢你的帮助

这是我的老问题,关于如何在连接表中选择和显示学生的成绩

我成功地做到了,但是现在我在更新连接表中的等级时遇到了问题

这是我的示例表

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

        "subject_bsit"
-----------------------------------
|subject_id| subject_name  |grade |
-----------------------------------
|    1     | Programming   |  3   |
|    2     | Networking    |  2.5 |
|    3     | Algorithm     |  1.75|
|    4     | Physical Educ |  2   |

This is the Junction table to connect the 
two now.

       "student_subject"
----------------------------
| student_id | subject_id |
----------------------------
|   1235     |      1     |
|   1235     |      2     |
|   1235     |      3     |
|   1234     |      1     |
这是我提出的问题。 这是一个例子,我试图更新科目id=1的学生id 1235的成绩

更新3:

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='" & Txtbox.Text & "' AND student_subject.sub_id = 1"
&Txtbox.Text&是用户输入studentid的地方,请不要介意。非常感谢您,我正在使用visual Studio vb.net

这正是我得到的错误

SQL语法有错误;检查相应的手册 您的MySQL服务器版本提供了正确的语法,可在“FROM”附近使用 学生\u科目内部联接科目\u bsit ON subject\u bsit.subject\u id= 一号线的学生


您的查询不稳定,应该如下所示

UPDATE student_subject 
INNER JOIN subject_bsit 
ON subject_bsit.subject_id = student_subject.sub_id 
SET grade=? 
where student_subject.student_id='" & Txtbox.Text & "' AND student_subject.sub_id = 1

您的查询不稳定,应该如下所示

UPDATE student_subject 
INNER JOIN subject_bsit 
ON subject_bsit.subject_id = student_subject.sub_id 
SET grade=? 
where student_subject.student_id='" & Txtbox.Text & "' AND student_subject.sub_id = 1

首先,你不更新学生课程。 由于科目表中没有“学生id”列,因此无法将分数与学生关联

更新主题信息 设置等级=@grade 其中subject\u ID=@subject\u ID

这将完成同样的事情

这就是我建议的模式

学生

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| studentID   | int(11)      | NO   | PRI | NULL    | auto_increment |
| studentName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| studentID | int(11)      | NO   | PRI | NULL    |       |
| subjectID | int(11)      | NO   | PRI | NULL    |       |
| grade     | decimal(3,2) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| subjectID   | int(11)      | NO   | PRI | NULL    | auto_increment |
| subjectName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
等级

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| studentID   | int(11)      | NO   | PRI | NULL    | auto_increment |
| studentName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| studentID | int(11)      | NO   | PRI | NULL    |       |
| subjectID | int(11)      | NO   | PRI | NULL    |       |
| grade     | decimal(3,2) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| subjectID   | int(11)      | NO   | PRI | NULL    | auto_increment |
| subjectName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
两个外键


  • grades.studentID(FK)首先,您不更新student\u主题。 由于科目表中没有“学生id”列,因此无法将分数与学生关联

    更新主题信息 设置等级=@grade 其中subject\u ID=@subject\u ID

    这将完成同样的事情

    这就是我建议的模式

    学生

    +-------------+--------------+------+-----+---------+----------------+
    | Field       | Type         | Null | Key | Default | Extra          |
    +-------------+--------------+------+-----+---------+----------------+
    | studentID   | int(11)      | NO   | PRI | NULL    | auto_increment |
    | studentName | varchar(100) | NO   |     | NULL    |                |
    +-------------+--------------+------+-----+---------+----------------+
    
    +-----------+--------------+------+-----+---------+-------+
    | Field     | Type         | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | studentID | int(11)      | NO   | PRI | NULL    |       |
    | subjectID | int(11)      | NO   | PRI | NULL    |       |
    | grade     | decimal(3,2) | YES  |     | NULL    |       |
    +-----------+--------------+------+-----+---------+-------+
    
    +-------------+--------------+------+-----+---------+----------------+
    | Field       | Type         | Null | Key | Default | Extra          |
    +-------------+--------------+------+-----+---------+----------------+
    | subjectID   | int(11)      | NO   | PRI | NULL    | auto_increment |
    | subjectName | varchar(100) | NO   |     | NULL    |                |
    +-------------+--------------+------+-----+---------+----------------+
    
    等级

    +-------------+--------------+------+-----+---------+----------------+
    | Field       | Type         | Null | Key | Default | Extra          |
    +-------------+--------------+------+-----+---------+----------------+
    | studentID   | int(11)      | NO   | PRI | NULL    | auto_increment |
    | studentName | varchar(100) | NO   |     | NULL    |                |
    +-------------+--------------+------+-----+---------+----------------+
    
    +-----------+--------------+------+-----+---------+-------+
    | Field     | Type         | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | studentID | int(11)      | NO   | PRI | NULL    |       |
    | subjectID | int(11)      | NO   | PRI | NULL    |       |
    | grade     | decimal(3,2) | YES  |     | NULL    |       |
    +-----------+--------------+------+-----+---------+-------+
    
    +-------------+--------------+------+-----+---------+----------------+
    | Field       | Type         | Null | Key | Default | Extra          |
    +-------------+--------------+------+-----+---------+----------------+
    | subjectID   | int(11)      | NO   | PRI | NULL    | auto_increment |
    | subjectName | varchar(100) | NO   |     | NULL    |                |
    +-------------+--------------+------+-----+---------+----------------+
    
    两个外键


  • grades.studentID(FK)您好,对不起,我将更新我的问题我忘了键入分数,仍然是相同的错误谢谢。@Mihai请在您的答案中使用参数。您好,对不起,我将更新我的问题我忘了键入分数,但仍然是相同的错误谢谢。@Mihai请在回答中使用参数。在尝试将SQL命令放入字符串之前,请始终自己执行SQL命令。如果它像纯SQL一样工作,那么您可以将其拆分并使其工作。这使您有机会划分错误-是我的SQL还是我的字符串语法。这只是一个从一个辛苦学习的人那里得到的提示。你仍然没有改变查询…@Hopper,嗨,对不起,我对数据库不是很在行。我知道我试过了,它也有同样的错误。它可以在普通更新上工作,但在连接表上更新它不起作用。感谢you@Mihai在我最近的帖子中,我忘了把定级设置为“1”。但它只输出相同的错误。thanks@Mihai非常感谢你。它起作用了。对不起,我刚开始学习SQL。再次感谢。在尝试将SQL命令放入字符串之前,请始终自行执行SQL命令。如果它像纯SQL一样工作,那么您可以将其拆分并使其工作。这使您有机会划分错误-是我的SQL还是我的字符串语法。这只是一个从一个辛苦学习的人那里得到的提示。你仍然没有改变查询…@Hopper,嗨,对不起,我对数据库不是很在行。我知道我试过了,它也有同样的错误。它可以在普通更新上工作,但在连接表上更新它不起作用。感谢you@Mihai在我最近的帖子中,我忘了把定级设置为“1”。但它只输出相同的错误。thanks@Mihai非常感谢你。它起作用了。对不起,我刚开始学习SQL。再次感谢你。