[英]MySQL update column in new table with content from another table (move)
我有這些表(編輯出相關的字段)
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 | |
+-----------------------+---------+------+-----+---------+----------------+
我想使用以下查詢將studentdates.student_date_cpl_id
列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 ......
它會添加到新行,並且不會更新當前行。 我怎么做到這一點?
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')
嘗試這樣的事情
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.