SQL:在 SQL 中编写嵌套查询 [关闭]

Posted

技术标签:

【中文标题】SQL:在 SQL 中编写嵌套查询 [关闭]【英文标题】:SQL: write nested query in SQL [closed] 【发布时间】:2014-06-20 15:53:26 【问题描述】:

我的表有以下列:

帐户密钥 产品组 产品版本

我想列出具有 ProductGroup=A 且 ProductVersion=13 且没有 ProductGroup=A 且 ProductVersion =19 的不同 AccountKey。

请分享sql代码。

非常感谢!

对不起,我想我不清楚上面的问题: 该表存储每个帐户密钥已购买的产品组和产品版本。因此,一个帐户密钥可以购买同一个 productGroup 但具有不同 ProductVersions 的多个产品。

我想知道购买了ProductGroup A 13版本但不是19版本的accountKey是什么。

例如如果我的桌子如下所示 AccountKey ProductGroup ProductVersion 123一13, 123一19, 456乙10, 456一13, 789乙19,

所以我想要的结果是 456 仅用于查询。

【问题讨论】:

【参考方案1】:
SELECT DISTINCT AccountKey
FROM TABLE 
WHERE (ProductGroup = 'A' AND ProductVersion = 13) 
   OR (ProductGroup != 'A' AND ProductVersion = 19)

【讨论】:

谢谢大家。我正在尝试使用它来解决 UI 子查询/嵌套过滤器。很难让用户将业务需求转换为 (ProductGroup != 'A' AND ProductVersion = 19) 这种情况。【参考方案2】:

你能试试这个查询吗

SELECT DISTINCT AccountKey 
FROM Table 
WHERE (ProductGroup = 'A' AND ProductVersion = 13) 
   OR (ProductGroup <> 'A' AND ProductVersion = 19)

【讨论】:

【参考方案3】:

你的意思是:

SELECT DISTINCT AccountKey
FROM TABLE 
WHERE (ProductGroup = 'A' AND ProductVersion = 13) 
   AND NOT (ProductGroup = 'A' AND ProductVersion = 19)

...这将包括除“A”之外的产品组。

还是要将结果限制为仅 ProductGroup 'A'?

【讨论】:

以上是关于SQL:在 SQL 中编写嵌套查询 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何重写这个嵌套的 SQL 查询以使其更快? [关闭]

Mybatis 的嵌套查询与嵌套结果的区别

Mybatis 的嵌套查询与嵌套结果的区别

为音乐数据库编写 SQL 查询 [关闭]

程序中使用嵌套的sql语句和在数据库中写存储过程调用它,有啥区别?

Mybatis查询延迟加载