MySQL从另一个表中查询和计数

时间:2012-10-25 05:28:23

标签: mysql sql count

我想从一个表中获取数据,并根据第一个表数据计算其他表中的所有结果,这是我尝试过的:

SELECT
    cars.*, (
        SELECT
            COUNT(*)
        FROM
            uploads
        WHERE
            uploads.cid = cars.customer
    ) AS `count`,
FROM
    `cars`
WHERE
    customer = 11;

我真的不知道为什么它不起作用,因为我不是一个普通的MySQL用户/编码器......

有人能指引我朝这个方向迈进正确的方向吗?

4 个答案:

答案 0 :(得分:1)

使用LEFT JOIN

连接两个表来尝试
SELECT  a.customer, COUNT(b.cid) totalCount
FROM    cars a
        LEFT JOIN uploads b
            ON a.customer = b.cid
WHERE   a.customer = 11
GROUP BY a.customer

COUNT(*)中使用LEFT JOIN会将记录的最小数量设为1。

答案 1 :(得分:1)

SELECT
    c.*, COUNT(u.cid) AS count
FROM
    cars c
LEFT JOIN 
    uploads u
ON
    u.cid=c.customer
WHERE
    u.customer = 11;
GROUP BY c.cid

答案 2 :(得分:0)

SELECT  cars.*,COUNT(uploads.*) as uplloaded 
from cars 
left outer join uploads on  uploads.cid = cars.customer
where  cars.customer = 11 
group by uploads.cid;

答案 3 :(得分:0)

试试这个:

SELECT  customer, COUNT(cid) totalCount
FROM    cars 
        INNER JOIN uploads 
            ON (customer = cid)
WHERE   customer = 11
GROUP BY customer
相关问题