gpt4 book ai didi

mysql - 长查询中重复子查询的替代方法

转载 作者:行者123 更新时间:2023-11-30 23:27:39 25 4
gpt4 key购买 nike

正在将一个表的一行插入到另一个表中,为此我有一个类似的查询

INSERT INTO table1 
(id,name,fieldname,address)
SELECT (SELECT id FROM usertable WHERE name = 'namevalue'),
name,
( SELECT fieldname FROM fielddata WHERE id IN
(SELECT id FROM usertable WHERE name = 'namevalue') ),
address
FROM sourcetable
WHERE cond = 'value'

在上面的查询中,下面的子查询重复了两次,有没有办法只使用一次子查询并保留值并在其他地方使用。

SELECT id FROM usertable WHERE name = 'namevalue'

如果需要更多详细信息,请告诉我。

最佳答案

试试这个:

INSERT INTO table1 
(id,name,fieldname,address)
SELECT sub.id,
sub.name,
( SELECT fieldname FROM fielddata WHERE id IN sub.id ),
sub.address
FROM
(
SELECT (SELECT id FROM usertable WHERE name = 'namevalue') id,
name,
address
FROM sourcetable
WHERE cond = 'value'
) sub

关于mysql - 长查询中重复子查询的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404156/

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