gpt4 book ai didi

MySQL 当 SELECT 子查询返回多行时,如何 INSERT INTO 表?

转载 作者:行者123 更新时间:2023-11-29 12:38:08 25 4
gpt4 key购买 nike

我正在尝试创建一个插入语句,下面是我到目前为止所拥有的:

INSERT INTO Role (application, developer, role) 

VALUES (? ,
(SELECT Id from Developer WHERE firstName='Alice' and lastname='Wonderland'),
'ARCHITECT');

在缺失值字段中,我尝试进行连接,以下连接语句返回我需要的值:

   SELECT a.id 
FROM Application a
JOIN application d ON d.id = a.id and a.category='GAMES'

但是,当我将上一个查询插入插入语句中的缺失值字段时,它给我一个错误,指出查询返回超过 1 行(这是故意的,因为我希望插入返回的所有行)进入角色表)

任何人都可以向我提供有关如何解决此问题的反馈吗?

最佳答案

我认为这就是您正在寻找的:

INSERT INTO Role(application, developer, role)
SELECT a.id, (SELECT Id from Developer WHERE firstName = 'Alice' and lastname = 'Wonderland'),
'ARCHITECT'
FROM Application a JOIN
application d
ON d.id = a.id and a.category = 'GAMES';

注意:我打算将带有 Developer 的子查询移至 FROM 子句中。但是,如果没有匹配项,这将返回 NULL - 这似乎是您的意图。如果我将它放在 FROM 子句中,您将得不到任何匹配项(MySQL 没有左交叉连接)。

关于MySQL 当 SELECT 子查询返回多行时,如何 INSERT INTO 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468896/

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