【发布时间】:2011-02-15 13:18:22
【问题描述】:
我有这个问题:
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 子查询”
有人知道其他方法吗?
谢谢
【问题讨论】:
-
亲爱的...
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, 9999999 -
重写你的查询 MySQL 不支持子查询中的
LIMIT。见dev.mysql.com/doc/refman/5.0/en/subquery-restrictions.html -
AjReal,这行不通;您试图将整个查询的偏移量限制为 1,该查询仅检索一个结果(计数)。
-
Nishant,这就是我要问的!!!!有谁知道如何重写查询?!?
-
在您的 CustPrimarySmoking 表中,显然每个客户 (CxID) 有多个记录...表上是否还有另一列用于唯一性,例如自动增量列?
标签: mysql sql mysql-error-1235