我有两张表,一张用于 regcourses,另一张名为 coursegroups。
课程组表
CREATE TABLE coursesgroup (
csgrec int(11) unsigned NOT NULL auto_increment,
courseID int(11) default NULL,
classID int(11) default NULL,
studgroup varchar(20) default NULL,
studnum int(11) default NULL,
PRIMARY KEY (csgrec)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
课程表:
CREATE TABLE regcourses (
regrec int(11) unsigned NOT NULL auto_increment,
regsemrec int(11) default NULL,
regstudID int(11) default NULL,
regcourseID int(11) default NULL,
regstatus int(11) default '0',
yearsem int(11) default '2012',
monthsem1 int(11) default '3',
classID int(11) default '1',
PRIMARY KEY (regrec)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
插入语句:
INSERT INTO coursesgroup VALUES ('2', '20', '1', 'BBA1009A1', '11');
INSERT INTO coursesgroup VALUES ('3', '20', '1', 'BBA1009B1', '4');
INSERT INTO regcourses VALUES ('2', '1', '98', '47', '0', '2012', '3', '1');
INSERT INTO regcourses VALUES ('4', '1', '98', '101', '0', '2012', '3', '1');
对于课程组表中 csgrec 列的特定值,我想将 regcourses 表的 regstatus 字段更新为“2”。所以我的更新代码是:
UPDATE regcourses JOIN coursesgroup ON regcourses.regcourseID = coursesgroup.courseID
Set regcourses.regstatus =2
WHERE coursesgroup.csgrec=3
但我的查询影响了这么多行而不是一行。因为我只想更改 csgrec=3 并且我的查询会影响与regcourses.regcourseID = coursesgroup.courseID condition
. 请帮助我。