【紧急】【Mysql】为什么多次leftjoin后使用聚合函数count统计数据就不准确了呢??跪求大神指点!
ringa_lee
ringa_lee 2017-04-17 13:45:30
0
1
1115

先上sql

SELECT
    a.id venueId,
    a.venue_name,
    a. STATUS venueStatus,
    COUNT(b.id) venueCourseCount
FROM
    t_venue a
LEFT JOIN t_venue_course b ON b.venue_id = a.id
GROUP BY
    a.id;

只有a和b进行左外连接 查出来的数据是

如图所示,这是可以看到venueId为4的venueCourseCount为10

然后我改一下sql

SELECT
    a.id venueId,
    a.venue_name,
    a. STATUS venueStatus,
    COUNT(b.id) venueCourseCount
FROM
    t_venue a
LEFT JOIN t_venue_course b ON b.venue_id = a.id
LEFT JOIN t_course_info c ON c.venue_course_id = b.id
GROUP BY
    a.id;

这时 b表和c表又进行一次左外连接,但是venueId为4的venueCourseCount变成16了 这是什么情况,我都groupby分组了啊 求大神搭救

ringa_lee
ringa_lee

ringa_lee

모든 응답(1)
黄舟

因为第二个条件并不是一对一,这是唯一的解释,如果有必要可以在count里面使用distint或者增加第二个表的join条件,保证三个表记录的一对一。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!