MySQL使用另一个查询的外键多次插入
我有一个简单的数据库结构:MySQL使用另一个查询的外键多次插入,mysql,Mysql,我有一个简单的数据库结构: node id name measure id node_id time value 从一个微控制器中,我得到了几个时间,值读数和一个节点的列表。名称 目前我查询数据库以从node.name SELECT id FROM node WHERE name = ? 然后我做多次插入 INSERT INTO measure (node_id, time, value) VALU
node
id
name
measure
id
node_id
time
value
从一个微控制器中,我得到了几个时间
,值
读数和一个节点的列表。名称
目前我查询数据库以从node.name
SELECT id FROM node WHERE name = ?
然后我做多次插入
INSERT INTO measure (node_id, time, value) VALUES (?, ?, ?), (?, ?, ?), ...
可以一次完成吗?您可以尝试使用内联表,以便加入
INSERT INTO measure (node_id, time, value)
SELECT id, time, value
FROM ( select ? AS time, ? AS value
union all
select ?, ?
...
) AS inlinedata
CROSS JOIN ( SELECT id FROM node WHERE name = ? )
我想我们需要更多的信息。从哪里获得插入数据?您可以执行联接,以便数据包含node.id。否则就没有其他方法了。可以将第一个查询用作子查询。但我会保持原样。@Juan:数据来自RESTAPI POST请求,从那里我必须将数据存储在db中。正如@PaulSpiegel所说,您可以使用子查询。但是获取节点id的成本可能太低了,我不会更改它。好的,我得到了--第二次阅读时:)--我明天会试试,谢谢