gpt4 book ai didi

mysql - 如何使用三个表进行左连接?mysql

转载 作者:行者123 更新时间:2023-11-29 23:26:47 25 4
gpt4 key购买 nike

我有这个查询:

  SELECT bussiness.bussId , count(favourites.userID) as fav
from `bussiness`
LEFT JOIN `favourites` on (`bussiness`.`bussId` = `favourites`.`bussId`)
where bussiness.bussId= 12310

当我运行此查询时,我得到 fav = 2。

但是当我离开加入另一张 table 时,

    SELECT bussiness.bussId , count(favourites.userID) as fav from `bussiness`

LEFT JOIN `favourites` on (`bussiness`.`bussId` = `favourites`.`bussId`)
LEFT JOIN `invoices` on (`bussiness`.`bussId` = `invoices`.`bussId`)
where bussiness.bussId= 12310

我得到 fav = 88 而不是 2

为什么会发生这种情况?

最佳答案

看起来好像 hello 表中多次出现了bussId,导致返回的行数成倍增加。由于您没有对 userID 进行不同的计数,因此查询只是计算包含 userID 的行数。如果您想统计唯一用户的数量,则需要使用COUNT DISTINCT。像这样:

SELECT bussiness.bussId , count(distinct favourites.userID) as fav from `bussiness`

LEFT JOIN `favourites` on (`bussiness`.`bussId` = `favourites`.`bussId`)
LEFT JOIN `hello` on (`bussiness`.`bussId` = `hello`.`bussId`)
where bussiness.bussId= 12310

关于mysql - 如何使用三个表进行左连接?mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com