2012-12-08 165 views
-1

我试着去找到一个解决方案:Mysql的子查询选择

我需要查询选择所有任务,其不started和类似tasknames这个任务不应该在这个表中重复标志更5行started

我的查询:

SELECT * FROM tasks as t 
WHERE started = 0 
AND ((SELECT COUNT(*) FROM tasks 
WHERE started = 1 AND taskname = taskname) < 5) 

但查询不起作用。任何人都可以告诉我我做错了什么?

+0

来限定TASKNAME外部表定义“不工作” – ean5533

+1

没有工作=没有结果,他预计 –

回答

3

尝试以下

AND taskname = t.taskname 
1

您是非常接近:

SELECT * FROM tasks as t 
WHERE started = 0 
AND (SELECT COUNT(*) FROM tasks 
WHERE started = 1 
AND taskname = t.taskname) < 5 

你只需要比较计数结果,而不是包括在子查询中的比较。此外,您需要使用t.前缀

+0

但其牛逼不T1) –

+0

为什么下投票,到底是什么? – Bohemian

+0

什么是'ast_limit'? – ean5533