我正在使用MySQL。在我的数据库中,我有以下表格:
student表。这个表的主键是sid。high_school表。主键是hid。university表。主键是uid。然后:
student & high_school,该表名为joint_table_A,它有两列:sid和hid,分别链接到student和high_school中的行。student & university,名为joint_table_B,它还有两列:sid和uid,它们分别链接到student和university中的行。我的问题和问题:
我想让students由sid在joint_table_A中链接,hid = 3 in 将插入到joint_table_B中,并将uid的值设置为1。这就是sid in joint_table_A,其中hid=3指的是student表中的学生,与joint_table_B中的sid和uid=1中的学生相同。这个操作的SQL查询是什么?
========更新==========
(在上面的描述中,我假设joint_table_B是空的。但是,如果在joint_table_B中已经有uid=1的记录,那么我需要用这些记录而不是INSERT进行UPDATE。)
发布于 2013-12-02 09:55:18
试试这个:
INSERT INTO joint_table_B (sid, uid)
SELECT students.sid, 1 AS uid FROM students s, joint_table_A a WHERE s.sid=a.sid AND hid=3 如果第二个表已经有了行,那么使用以下命令:
INSERT INTO joint_table_B (sid, uid)
SELECT students.sid, 1 AS uid FROM students s, joint_table_A a WHERE s.sid=a.sid AND hid=3
ON DUPLICATE KEY UPDATE uid = 1或
UPDATE joint_table_B SET uid = 1
WHERE sid IN (select students.sid FROM students s, joint_table_A a WHERE s.sid=a.sid AND hid=3)https://stackoverflow.com/questions/20325237
复制相似问题