MySQL基于不同的表插入记录

MySQL基于不同的表插入记录,mysql,Mysql,我有三张桌子: 表1 userID |用户名 表2 topicID | topicName 表3 用户ID | topicID (一个用户可以指定多个主题) 我收到一个主题名字符串和一个用户名。我需要将这些数据插入表3,但首先我需要从表2中获取topicid。目前,我的解决方案是执行select查询以获取topicNames的TopicID(来自表2),然后使用它插入表3 有没有办法在一个查询中进行插入和映射?字符串是什么样子的?如果是以逗号分隔的主题名列表,您可以使用FIND\u IN_SET

我有三张桌子:

表1 userID |用户名

表2 topicID | topicName

表3 用户ID | topicID (一个用户可以指定多个主题)

我收到一个主题名字符串和一个用户名。我需要将这些数据插入表3,但首先我需要从表2中获取topicid。目前,我的解决方案是执行select查询以获取topicNames的TopicID(来自表2),然后使用它插入表3


有没有办法在一个查询中进行插入和映射?

字符串是什么样子的?如果是以逗号分隔的
主题名列表
,您可以使用
FIND\u IN_SET()
将其与
表2.topicName
进行匹配。谢谢。插入到SELECT中完成了该操作。
@string := 'topicName,userID';  -- for example, 'my super-topic,123'

INSERT INTO table3 (userID, topicID)
SELECT SUBSTRING_INDEX(@string, ',', -1), topicID 
FROM table2
WHERE topicName = SUBSTRING_INDEX(@string, ',', 1);