簡體   English   中英

MySql:如何進行子查詢並計算兩個表中ID相同的所有行

[英]MySql: how to make subquery and count all rows where id is the same in two tables

如何進行查詢,而不是全部返回特定ID的值。

    SELECT content.id, count(case likes.type when 'p' then 1 else null end) as p
FROM content
JOIN likes on likes.content_id = content.id

此代碼返回:

ID p
1 18

但我想要它:

ID p
1 12
2 4
3 2

添加group by

SELECT content.id, 
       sum(likes.type = 'p') as p
FROM content
JOIN likes on likes.content_id = content.id
GROUP BY content.id

然后將聚合函數(即count() )應用於組,而不是整個結果。

您的查詢將在大多數數據庫中失敗。 問題是在select未匯總content.id ,但是您正在使用聚合函數。

這是一個簡單的問題要解決:

SELECT content.id, count(case likes.type when 'p' then 1 else null end) as p
FROM content
JOIN likes on likes.content_id = content.id
GROUP BY content.id;

然而,在一般情況下,你要小心, 總是包含在所有的非聚集列select一個在group by

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM