吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1232|回复: 6
收起左侧

[求助] mysql请教

  [复制链接]
积木工具箱 发表于 2021-4-15 18:47
现有三个表 user 用户表 album 相册表 photo表

user 表结构
user_id //用户id
user_name; //用户名

album表结构
album_id //相册id
user_id //相册对应的用户id

photo表
photo_id //照片id
album_id //相册id


现在我想求每个用户的相册数量 该怎么写呢 这样好像不对 求大佬指教
select user.id,count(photo_id ) from user left join  album  on user.user_id = album.user_id left join photo on album.album_id =  photo.album_id

我想要的结果是
1 蔡旭坤 4(照片数量)
2 打篮球 3(照片数量)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ibilibili 发表于 2021-4-15 19:00
可以把整个表的数据读出来,用代码逻辑实现所需功能。
coolcalf 发表于 2021-4-15 19:13
select * from user as a
left join albuma s b on a.user_id=b.user_id
left join
(
select album_id,count(1) from photo as a
GROUP BY album_id
)c on b.album_id=c.lbum_id

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
积木工具箱 + 1 + 1 谢谢@Thanks!

查看全部评分

年少不懂事 发表于 2021-4-15 19:51
ibilibili 发表于 2021-4-15 19:00
可以把整个表的数据读出来,用代码逻辑实现所需功能。

楼主应该要的是表连接查询sql 你说的这种方式在数据量很大的时候非常的好
SuperCC25513 发表于 2021-4-15 22:05
SELECT u.id,u.`name` count(p.photo_id ) as '照片数量'
from user u LEFT JOIN album a on u.id = a.user_id
LEFT JOIN photo p on p.album_id = a.id
group by u.id

看看这样是你想要的不
dukeimp 发表于 2021-4-15 23:40
select * from user  
left join album    on user.user_id=user.user_id
left join
(
select album_id,count(1) from photo  
GROUP BY album_id
)photo  on album.album_id=photo.album_id
VioletKiss 发表于 2021-4-16 09:35
参考上面的
SELECT
        u.user_id,
        u.user_name,
        COALESCE( SUM(p.count),0 )
FROM
        USER u
        LEFT JOIN album a ON u.user_id = a.user_id
        LEFT JOIN ( SELECT album_id, count( album_id ) AS count FROM photo GROUP BY album_id ) p ON a.album_id = p.album_id
GROUP BY
        u.user_id,
        u.user_name;

image.png
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 05:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表