Mysql 如何加入依赖于外部组的计数
我有一张这样的桌子:Mysql 如何加入依赖于外部组的计数,mysql,join,Mysql,Join,我有一张这样的桌子: id | mid | oid 1 | 400 | 1 2 | 400 | NULL 3 | 401 | 1 4 | 403 | NULL 我正在尝试返回MID、带nullOID的记录数和带notnullOID的记录数 目前我使用的是: SELECT (SELECT COUNT(id) FROM drp_ledger WHERE oid IS NULL) AS que, (SELECT COUNT(id) FROM drp_ledger WHERE oid IS
id | mid | oid
1 | 400 | 1
2 | 400 | NULL
3 | 401 | 1
4 | 403 | NULL
我正在尝试返回MID、带null
OID的记录数和带notnull
OID的记录数
目前我使用的是:
SELECT
(SELECT COUNT(id) FROM drp_ledger WHERE oid IS NULL) AS que,
(SELECT COUNT(id) FROM drp_ledger WHERE oid IS NOT NULL) AS finished,
`mid` FROM drp_ledger GROUP BY `mid`
但是,这将返回NULL
和notnull
oid的整个计数
因此,我尝试使用一个加入我觉得我很接近,但我就是无法让它工作
SELECT l.`mid`, que, finished FROM drp_ledger AS l
JOIN (SELECT COUNT(id) AS que FROM drp_ledger WHERE oid IS NULL GROUP BY `mid`) AS q ON q.`mid` = l.`mid`
JOIN (SELECT COUNT(id) AS finished FROM drp_ledger WHERE oid IS NOT NULL GROUP BY `mid`) AS f ON f.`mid` = l.`mid`
我想返回:
mid | que | finished
400 | 1 | 1
401 | 0 | 1
403 | 1 | 0
不需要加入
SELECT
mid,
SUM(IF(oid IS NULL,1,0)) AS oid_null,
SUM(IF(oid IS NOT NULL,1,0)) AS oid_not_null
FROM tablename
GROUP BY mid
你很接近,但是你忘了在子查询中选择mid
。Hmm,我想如果我得到错误代码:1146表'leechprotect.drp\u ledger'不存在
,那将是一些cpanel问题。我不知道cpanel,但说它有效。太好了,非常感谢!