先上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分组了啊 求大神搭救
因為第二個條件並不是一對一,這是唯一的解釋,如果有必要可以在count裡面使用distint或增加第二個表的join條件,保證三個表記錄的一對一。