mysql - 任何人都可以看看 mySQL 吗?

标签 mysql sql

这是我的 SQL (MySQL) 命令:

SELECT pp.pluginid
FROM plugins pp
WHERE 
    (pp.limit=-1)
    OR
    (pp.limit>(select count(a.pluginid) from ads a where a.pluginid = pp.pluginid))
ORDER BY count(a.pluginid)

最后一行 (order by) 不起作用,我明白为什么(因为我不从子查询中输出这个值)。但我不知道如何,也不知道要查找什么命令。

已修复!!! 这是我所做的:

SELECT pp.pluginid, (select count(a.pluginid) from ads a where a.pluginid = pp.pluginid) as bb
FROM plugins pp
WHERE 
    (pp.limit=-1)
    OR
    (pp.limit>(select count(a.pluginid) from ads a where a.pluginid = pp.pluginid))
ORDER BY bb

谢谢!

最佳答案

尝试使用联接和分组依据,如下所示:

SELECT pp.pluginid,pp.limit
FROM plugins pp
LEFT OUTER JOIN ads a ON a.pluginid = pp.pluginid
GROUP BY pp.pluginid
HAVING pp.limit=-1 OR pp.limit > COUNT(1)
ORDER BY COUNT(1)

请注意,您需要使用 HAVING 代替 WHERE,因为条件使用聚合。

这是一个link to a demo on sqlfiddle .

关于mysql - 任何人都可以看看 mySQL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945924/

相关文章:

php - 如果MySQL表中有多条相同的记录,如何只选择一条记录

Mysql在多行中选择相同的信息

mysql - 添加了额外下划线的表名称

mysql - "IN"子句中包含多个日期的 PIVOT

sql - 使用 FIRSTVALUE()/LAST_VALUE() 进行分组

sql - T-SQL 中的 case 语句中断

SQL 按查询中指定的顺序排序

php - ipplan - 更新 ipaddradd 中的信息字段

mysql - 如何在 MySQL 中按月分组并获得结果,即使是对它们没有值(value)的月份

sql - 在没有密码依赖性的情况下在 PostgreSQL 中加载 SQL 转储