Zal*_*oza 6 mysql select count
select `personal`.`id` AS `id`,
`personal`.`name` AS `name`,
(select count(visit.id)
from visit,personal
where visit.user_id=personal.id) as count
from personal;
Run Code Online (Sandbox Code Playgroud)
我试图让所有用户和他们所做的访问次数.
我得到的结果是所有用户,但count列包含相同的值(不是特定于该行id).
我在这做错了什么?如何告诉mysql用户这个行id?
是复合选择最佳方式还是有更好的方法?
Qua*_*noi 20
SELECT p.id, p.name, COUNT(v.user_id)
FROM personal p
LEFT JOIN
visit v
ON v.user_id = p.id
GROUP BY
p.id
Run Code Online (Sandbox Code Playgroud)
您当然也可以使用subselect(例如,如果您有ANSI GROUP BY兼容性):
SELECT p.id, p.name,
(
SELECT COUNT(*)
FROM visit v
WHERE v.user_id = p.id
)
FROM personal p
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7844 次 |
| 最近记录: |