gpt4 book ai didi

sql - 如何基于具有多行作为响应的另一个 SELECT 进行 SELECT?

转载 作者:行者123 更新时间:2023-12-03 23:52:48 25 4
gpt4 key购买 nike

注意:我不是精明的 SQL 编码器,我承认我在询问之前进行的谷歌搜索可能存在缺陷。如果我错过了对其他人来说显而易见的事情,请耐心等待。

我有一个 select 语句,它给出单行或多行作为回复。然后,我使用从第一行获取的参数执行不同的 select 语句。然后,我再次执行相同的 select 语句,但参数是从第二行获取的,依此类推。

我想把它放在 SQL 中的单个语句中,但很遗憾,我缺乏这方面的技能。我该怎么做?

目前,我正在单独获取第一组数据。然后,我做了一些 C# 魔术并单独执行以下每个参数化语句。 Waaay不整洁......

这个问题可以重述如下。当然,我最终不会这样解决(会有一个 SP 这样做),但它显示了我们今天使用的方法,我们对此感到非常不安。

String mainCommand = "select Index from SomeTable";
...
foreach(String parameter in ...)
{
String subCommand =
"select RealValue from AnotherTable where Index = " + parameter;
...
}

最佳答案

您想同时使用连接操作和子查询来执行您的操作。

类似这样的:

 SELECT [fields] from tbl_mainCommand
JOIN
(SELECT [fields] from tbl_subCommand)
on tbl_mainCommand.fieldKey = tbl_subCommand.fieldKey

根据您的表的设置方式,子查询可能不是最有效的方法,因为它可能导致 correlated subquery .但归根结底,SQL 和集合论的好处在于您可以一次执行这样的大规模操作,而不是遍历多个参数并运行多个 SQL 语句。

请注意,on tbl... 行是表之间的链接。这实际上是将参数传递到第二个表或子查询的地方。如果您可以将其更多地视为两个不同数据集之间的链接,而不是传递参数,那么您更有可能避免相关子查询。

关于sql - 如何基于具有多行作为响应的另一个 SELECT 进行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203455/

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