从一个表到另一个表的MySQL数据
我在MySQL中有3个表,结构如下 表1:药品 字段: 医疗id 医学名称 样本数据: 表2:交易 字段:tru id、tru medicine、tru city 样本数据: 表3:概要 字段:sm_id、sm_medicine 样本数据: 我想做的是,在一个查询中,可以使用子查询,准备好“transactions”表中的数据并将其插入“summary”表,但应该插入medicine name和medicine id。药品id可以从“药品”表中提取。您可以使用“插入到表中”从其他表中选择并借助嵌套选择来执行此操作:从一个表到另一个表的MySQL数据,mysql,Mysql,我在MySQL中有3个表,结构如下 表1:药品 字段: 医疗id 医学名称 样本数据: 表2:交易 字段:tru id、tru medicine、tru city 样本数据: 表3:概要 字段:sm_id、sm_medicine 样本数据: 我想做的是,在一个查询中,可以使用子查询,准备好“transactions”表中的数据并将其插入“summary”表,但应该插入medicine name和medicine id。药品id可以从“药品”表中提取。您可以使用“插入到表中”从其他表中选择并借助嵌
INSERT INTO summary (sm_id, sm_medicine)
SELECT (SELECT MAX(sm_id)+1 FROM summary),
(SELECT med_id FROM medicines WHERE med_name = transactions.tr_medicnie)
FROM transactions;
首先,您在摘要中获得最大id,并使用一个SELECT MAXsm_id+1 FROM summary将其增加,如果将AUTO_INCREMENT设置为列,则不需要这样做
第二个嵌套的select select med_id FROM medicines WHERE med_name=transactions.tr_medicnie它模拟表medicines和事务之间的连接,在每个事务中获取药物id并将其插入摘要中 到目前为止你试过什么代码?
tr_id | tr_medicine | tr_city
1 | Panadol | London
2 | Tylenol | Milan
3 | Brufen | New York
sm_id | sm_medicine
1 | 1
2 | 2
3 | 3
INSERT INTO summary (sm_id, sm_medicine)
SELECT (SELECT MAX(sm_id)+1 FROM summary),
(SELECT med_id FROM medicines WHERE med_name = transactions.tr_medicnie)
FROM transactions;