数据库连接查询时一对多导致数据超出左表数量

本文探讨了一种在SQL查询中遇到的一对多关联导致数据超出左表数量的问题。通过调整查询语句,使用子查询获取每个电话号码的最小主键,确保了查询结果与左表数量一致。在实际操作中,针对用户、活动参与记录、商家等表进行联查时,通过筛选并按数量降序排序,展示了如何有效地进行数据聚合和过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库连接查询时一对多导致数据超出左表数量

select * from 表1,表2 where 表1.关联字段=表2.关联字段 and 表2.主键 in(select min(主键) from 表2 group by 关联)  

实际操作四季项目时

SELECT
		u.`name`,
		u.phone,
		p.biz,
		y.district,
		count( z.user_id ) AS num
	FROM
		zh_gh_activity_ql_copy2 z,
		zh_gh_user u,
		zh_gh_activity_ql_user p,
		zh_gh_activity_ql_shop_copy2 y
	WHERE
		z.user_id = u.id
		AND u.phone = p.phone
		AND y.id = z.shop_id
		AND p.id IN ( SELECT min( id ) FROM zh_gh_activity_ql_user GROUP BY phone )
		AND z.is_get = '1'
	GROUP BY
		z.user_id
	ORDER BY
		num DESC
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值