我想从一个表中获取数据,并根据第一个表数据计算其他表中的所有结果,这是我尝试过的:
SELECT
cars.*, (
SELECT
COUNT(*)
FROM
uploads
WHERE
uploads.cid = cars.customer
) AS `count`,
FROM
`cars`
WHERE
customer = 11;
我真的不知道为什么它不起作用,因为我不是一个普通的MySQL用户/编码器......
有人能指引我朝这个方向迈进正确的方向吗?
答案 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