3

テーブルには列が含まれimg_idlikesいます。例:

 1  1
 1  1
 1  0
 2  0
 2  0
 3  1

したがって、このクエリを実行すると、次のようになります。

select img_id, count(likes)
from my_table
where likes = 1
group by img_id

結果は次のとおりです。

1  2
3  1

そして私が走るとき:

select img_id, count(likes)
from my_table
where likes = 0
group by img_id

結果は次のとおりです。

1 1
2 2

私の質問は:

query1に返すにはどうすればよいですかimg_id2= 0、つまりimg_id=2にはクエリ2にもいいねがありませんimg_id=3には嫌いなものがないので、3->0を返す必要があります

4

1 に答える 1

9

MySQLおよびSQLServerでは、

SELECT  img_id,
        SUM(CASE WHEN likes = 1 THEN 1 ELSE 0 END) totalLikes,
        SUM(CASE WHEN likes = 0 THEN 1 ELSE 0 END) totalDisLikes
FROM    tableName
GROUP   BY img_ID

または単にMySQLで、

SELECT  img_id,
        SUM(likes = 1) totalLikes,
        SUM(likes = 0) totalDisLikes
FROM    tableName
GROUP   BY img_ID
于 2013-01-23T07:22:29.890 に答える