0

これらのテーブルがあります(無関係なフィールドを編集しました)

mysql> desc studentcourseplan;
+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| cpl_id            | int(11)      | NO   | PRI | NULL    | auto_increment |
| student_id        | int(11)      | YES  | MUL | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+


mysql> desc studentdates;
+-----------------------+---------+------+-----+---------+----------------+
| Field                 | Type    | Null | Key | Default | Extra          |
+-----------------------+---------+------+-----+---------+----------------+
| student_date_id       | int(11) | NO   | PRI | NULL    | auto_increment |
| student_id            | int(11) | YES  |     | NULL    |                |
| student_date_cpl_id   | int(11) | YES  |     | NULL    |                |
+-----------------------+---------+------+-----+---------+----------------+

studentcourseplan.cpl_id以下のクエリを使用して列をコピーしたいstudentdates.student_date_cpl_id(重複を除外するため)

SELECT cpl_id FROM studentcourseplan
    WHERE student_id NOT IN ('50', '51', '85', '86', '90', '95', '89', '91', '92', '93', '94', '97', '98', '99', '100', '88')

法線を実行するINSERT INTO studentdates.student_date_cpl_id SELECT ......と、新しい行が追加され、現在の行は更新されません。どうすればこれを達成できますか?

4

2 に答える 2

1

このようなことを試してください

INSERT INTO studentdates.student_date_id,
     studentdates.student_date_cpl_id
select .... (join your tables)

ON DUPLICATE KEY UPDATE studentdates.student_date_cpl_id = studentcourseplan.cpl_id
于 2012-09-24T09:00:11.777 に答える
1
Update  studentdates s,studentcourseplan sp
SET s.student_date_cpl_id = sp.cpl_id
where s.student_id=sp.student_id            
and s.student_id not in('50', '51', '85', '86', '90', '95', '89', '91', '92', '93', '94', '97', '98', '99', '100', '88')
于 2012-09-24T08:58:46.537 に答える