在sql中对不相关嵌套查询的处理原则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql中对不相关嵌套查询的处理原则相关的知识,希望对你有一定的参考价值。
参考技术A 1,在使用子查询的时候要用括号把查询语句括起来,2、子查询不能查询text,image字段
3、子查询里还可以包括子查询,最多可以嵌套32层。
4、在where 子句与having 子句都可以用
SQL:在 SQL 中编写嵌套查询 [关闭]
【中文标题】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中对不相关嵌套查询的处理原则的主要内容,如果未能解决你的问题,请参考以下文章