Mysql 如何将子查询与插入合并到两个不同的表+;引用自增值
下面是我用来查找productID和MAX orderby值的查询Mysql 如何将子查询与插入合并到两个不同的表+;引用自增值,mysql,insert,subquery,Mysql,Insert,Subquery,下面是我用来查找productID和MAX orderby值的查询 SELECT xc.productid, product, (MAX(orderby)+1) FROM xcart_products xp LEFT JOIN xcart_classes xc ON xc.productid = xp.productid WHERE product LIKE '% Frame' GROUP BY productid; 然后我想使用productid和ORDERBY值+1并填充我的xc
SELECT xc.productid, product, (MAX(orderby)+1)
FROM xcart_products xp
LEFT JOIN xcart_classes xc ON xc.productid = xp.productid
WHERE product LIKE '% Frame'
GROUP BY productid;
然后我想使用productid和ORDERBY值+1并填充我的xcart_classes表,我想知道填充的自动增量值
INSERT INTO xcart_class_options
(`classid`,`option_name`,`orderby`,`avail`,`price_modifier`,`modifier_type`,`fba`,`rpro_attr`)
VALUES
('11434','Yes','0','Y','0.00','$','0',NULL);
SELECT @last:= LAST_INSERT_ID();
然后我想使用自动递增的值来填充下一个插入-
INSERT INTO xcart_classes
(`classid`,`productid`,`class`,`classtext`,`orderby`,`avail`,`is_modifier`,`classnote`,`showcheckbox`,`showcheckbox`,`showaddproduct`,`popup_url`,`popup_width`,`popup_height`)
VALUES
(@last,'<REFERENCEDPRODUCTID>','TEST','TEST','<REFERENCE_MAX_ORDERID+1>','Y','Y','','Y','',NULL,NULL,NULL);
插入到xcart\u类中
(`classid`、`productid`、`class`、`classtext`、`orderby`、`avail`、`is_修饰符`、`classnote`、`showcheckbox`、`showaddproduct`、`popup_url`、`popup_宽度`、`popup_高度`)
价值观
(@last','TEST','TEST','Y','Y','Y','Y','NULL,NULL,NULL);
有没有一种方法可以用一条语句来完成这两个插入,或者这是我需要多条语句才能完成的
我是否可以将最后一个\u INSERT \u ID()保存到用户定义的变量中,以将其推送到下一个INSERT?最后使用了两个单独的INSERT子查询-
INSERT INTO rgcart.xcart_class_options
(`classid`,`option_name`,`orderby`,`avail`,`price_modifier`,`modifier_type`,`fba` ,`rpro_attr`)
SELECT MAX(classid),'Yes','0','Y','0.00','$','0',NULL
FROM xcart_classes
WHERE productid IN (
SELECT xp.productid
FROM xcart_products xp
LEFT JOIN rgcart.xcart_classes xc ON xc.productid = xp.productid
WHERE product LIKE '% CL'
GROUP BY productid
ORDER BY productid ASC)
GROUP BY productid;
INSERT INTO xcart_classes
(`productid`,`class`,`classtext`,`orderby`,`avail`,`is_modifier`,`classnote`,`showcheckbox`,`showaddproduct`,`popup_url`,`popup_width`,`popup_height`)
SELECT xp.productid,'TEST','TEST2',(MAX(orderby)+1),'Y','Y','','Y','',NULL,NULL,NULL
FROM xcart_products xp
LEFT JOIN rgcart.xcart_classes xc ON xc.productid = xp.productid
WHERE product LIKE '% CL'
GROUP BY productid
ORDER BY productid ASC;