我有这个查询:
SELECT count(cp.CxID) as intSmokers
FROM CustPrimarySmoking cp
JOIN Customer c ON cp.CxID = c.CustomerID
WHERE
cp.CxID IN (SELECT CxID FROM CustPrimarySmoking WHERE CxID = cp.CxID LIMIT 1, 9999)
想法是,计数将基于嵌套查询的结果,该查询将检索除第一个记录以外的该客户的所有记录。
但是,我遇到了这个错误,我认为这是很严重的错误:
1235-此版本的MySQL尚不支持“ LIMIT&IN / ALL / ANY / SOME子查询”
有人知道这样做的其他方式吗?
谢谢
这就是您需要进行的操作。请参阅我已经解决的示例。
mysql> select * from test;
+------+-------+
| id | name |
+------+-------+
| 1 | name1 |
| 2 | name2 |
| 3 | name3 |
| 4 | name4 |
+------+-------+
4 rows in set (0.00 sec)
mysql> select * from test1;
+------+------+--------+
| id | tid | name2 |
+------+------+--------+
| 1 | 2 | name11 |
| 2 | 3 | name12 |
| 3 | 4 | name13 |
+------+------+--------+
3 rows in set (0.00 sec)
mysql> select
-> t1.name
-> from
-> test t1
-> join
-> test1 t2 on t2.tid = t1.id
-> join
-> (select id from test where id <4 limit 3) as tempt on tempt.id = t1.id;
+-------+
| name |
+-------+
| name2 |
| name3 |
+-------+
2 rows in set (0.00 sec)
希望这可以帮助。
问题内容: 这是我正在使用的代码 这是给我的错误 我该如何解决这个问题?它使它的另一种方式…所以我没有得到错误… 问题答案: 除了使用IN,还可以使用JOIN
问题内容: 如标题所述,我想要一个解决方法… 干杯 问题答案: 您可能会希望将an添加到嵌套查询中。
主要内容:Oracle ANY运算符简介,Oracle ANY运算符的例子在本教程中,您将学习如何使用Oracle 运算符将值与列表或子查询进行比较。 Oracle ANY运算符简介 Oracle 运算符用于将值与子查询返回的值或结果集列表进行比较。下面举例说明运算符与列表或子查询一起使用时的语法: 在这个语法中: 运算符前面必须有一个运算符,例如:,,,,,。 列表或子查询必须用圆括号包围。 使用运算符将值与列表进行比较时,Oracle将初始条件扩展到列表的所有元素,
问题内容: 当表开始增长时,我担心WHERE子句中IN的性能。有没有人对这种查询有更好的策略?子查询返回的记录数比TradeLine表中的记录数增长得慢得多。TradeLine表本身以每天10个的速度增长。 谢谢你。 编辑:我使用了将子查询从WHERE移到FROM的想法。我对有助于此新查询的所有答案投了赞成票。 问题答案: 子句中的子查询不依赖于外部查询中的任何内容。您可以安全地将其移到子句中;一
问题内容: 我很好奇为何应该比更快地执行。 当比尔·卡尔文提出一个要点时,我正在回答一个问题。当您使用它时,它使用相关子查询(依赖子查询),而IN()仅使用子查询。 解释显示,并且两者都使用了一个依赖子查询,并且都只使用了一个子查询..所以我很好奇关联子查询如何比子查询更快? 我以前使用过EXISTS,它的执行速度比IN快,这就是我感到困惑的原因。 这是带有说明的SQLFIDDLE 一些问题 在上
问题内容: 以下两个查询是子查询。两者相同,都对我有效。但是问题是方法1的查询大约需要10秒才能执行,而方法2的查询不到1秒。 我能够将方法1的查询转换为方法2,但是我不了解查询中正在发生什么。我一直想自己弄清楚。我真的很想了解以下两个查询之间的区别是什么,以及如何获得性能提升?它背后的逻辑是什么? 我是这些高级技术的新手。我希望有人能在这里帮助我。考虑到我阅读的文档并没有给我任何提示。 方法1: