gpt4 book ai didi

mysql - SQL 查询 : rows linked by one joint table INSERT to another joint table

转载 作者:行者123 更新时间:2023-11-30 00:58:46 25 4
gpt4 key购买 nike

我正在使用MySQL。在我的数据库中,我有以下表格:

  1. A student table 。该表的主键是sid .

  2. A high_school table 。主键是 hid .

  3. A university table 。主键是 uid .

然后:

  • student 有一个联合表 & high_school ,该表名为 joint_table_A它有两列:sidhid链接到 student 中的行& high_school分别。

  • student 还有另一个联合表 & university ,名为joint_table_B ,它还有两列:siduid链接到 student 中的行& university分别。

我的问题和疑问:

我想要那些students链接为 sidjoint_table_A哪里hid = 3插入joint_table_B并输入 uid 的值成为1 。那就是有sidjoint_table_A哪里hid=3student中的同一个学生表如sidjoint_table_Buid=1 。此操作的 SQL 查询是什么?

========更新==========

(在上面的描述中,我假设 joint_table_B 为空。但是,如果 joint_table_B 中已经有 uid=1 的记录,那么我需要 UPDATE 使用这些记录而不是 INSERT 。)

最佳答案

试试这个:

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)

关于mysql - SQL 查询 : rows linked by one joint table INSERT to another joint table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com