0

1つのテーブルからデータを取得し、最初のテーブルデータに応じて、他のテーブルからのすべての結果をカウントしたいと思います。これが私が試したものです。

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

私は通常のMySQLユーザー/コーダーではないので、なぜそれが機能しないのか本当にわかりません...

誰かがこれで私を正しい方向に向けることができますか?

4

4 に答える 4

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(*)inを使用するLEFT JOINと、最小カウントが1になるレコードがあります。

于 2012-10-25T05:30:53.027 に答える
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
于 2012-10-25T05:31:53.310 に答える
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;
于 2012-10-25T05:32:15.680 に答える
0

これを試して :

SELECT  customer, COUNT(cid) totalCount
FROM    cars 
        INNER JOIN uploads 
            ON (customer = cid)
WHERE   customer = 11
GROUP BY customer
于 2012-10-25T05:32:33.673 に答える