gpt4 book ai didi

mysql - 堆叠式 SQL 查询错误和并发症

转载 作者:行者123 更新时间:2023-11-29 06:56:55 25 4
gpt4 key购买 nike

我刚刚了解到您可以堆叠 SQL 查询,而不是运行 4 个不同的查询并组合数据。所以我阅读了教程之类的东西,但仍然无法弄清楚这个特定的东西。

SELECT ID,
(SELECT firstname
FROM user
WHERE ID = fundraiser.user_ID) AS firstname,
(SELECT lastname
FROM user
WHERE ID = fundraiser.user_ID) AS lastname,
(SELECT org_fund_id
FROM fundraiser
WHERE ID = fundraiser.ID) AS org_fund_ID,
(SELECT ref_ID
FROM fundraiser
WHERE ID = fundraiser.ID) AS ref_ID
FROM fundraiser
WHERE 1
ORDER BY org_fund_ID ASC

这是被调用的数据库/表的基本设置:[筹款事件] - (ID, ref_ID, user_ID, org_fund_ID) 和[用户] - (名字,姓氏)

基本上,我想从数据库中提取“fundraiser”的所有字段,但获取相应的“user.firstname”和“user.lastname”,其中“fundraiser.user_ID”=“user.ID”。

所以它会连续出现这样的东西:fundraiser.ID, fundraiser.user_ID, fundraiser.ref_ID, user.firstname, user.lastname

我尝试了大约 30 种不同的方式来编写此查询,但都失败了。我收到的错误是“#1242 - 子查询返回多于 1 行”。

不确定我如何才能为您提供更多信息,以便您可以想象我在说什么,但我会提供我能提供的任何数据。

提前致谢。

最佳答案

选择所有列:

SELECT *
FROM fundraiser f
INNER JOIN user u
ON u.ID = f.user_ID
ORDER BY f.ord_fund_id ASC;

选择需要的列:

SELECT 
u.firstname,
u.lastname,
f.org_fund_id,
f.ref_ID
FROM fundraiser f
INNER JOIN user u ON u.ID = f.user_ID
ORDER BY f.ord_fund_id ASC;

这应该是,你需要的。参见 this Wikipedia page .

关于mysql - 堆叠式 SQL 查询错误和并发症,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194870/

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