带有Join,Count和Where的SQL查询

Wat*_*ers 11 sql join count where

我有2个表,我正在尝试进行一个查询以节省一些工作.

Table 1: id, category id, colour
Table 2: category id, category name
Run Code Online (Sandbox Code Playgroud)

我想加入他们以便我得到 id, category id, category name, colour

然后我想限制它,以便没有选择"红色"项目(WHERE colour != "red")然后我想计算每个类别(COUNT(id) GROUP BY (category id)中的记录数量.

我已经试了:

SELECT COUNT(table1.id), table1.category_id, table2.category_name 
FROM table1 
INNER JOIN table2 ON table1.category_id=table2.category_id 
WHERE table1.colour != "red"
Run Code Online (Sandbox Code Playgroud)

但它只是不起作用.我尝试了很多变化,当我尝试上面的查询时没有得到任何结果.

Joh*_*Woo 26

您必须使用,GROUP BY因此您将返回多个记录,

SELECT  COUNT(*) TotalCount, 
        b.category_id, 
        b.category_name 
FROM    table1 a
        INNER JOIN table2 b
            ON a.category_id = b.category_id 
WHERE   a.colour <> 'red'
GROUP   BY b.category_id, b.category_name
Run Code Online (Sandbox Code Playgroud)


Nen*_*vic 7

SELECT COUNT(*), table1.category_id, table2.category_name 
FROM table1 
INNER JOIN table2 ON table1.category_id=table2.category_id 
WHERE table1.colour <> 'red'
GROUP BY table1.category_id, table2.category_name 
Run Code Online (Sandbox Code Playgroud)