【问题标题】:Need to COUNT in LEFT JOIN using MYSQL需要使用 MYSQL 在 LEFT JOIN 中计数
【发布时间】:2009-09-07 06:50:33
【问题描述】:

选择 * 来自tbl_group_jointgj 左加入 tbl_groups tg ON tg.group_id = tgj.group_id 左连接 tbl_registeration tr ON tr.mem_id = tgj.mem1_id WHERE tgj.group_id =24 LIMIT 0 , 30

以上查询工作正常。它产生两行作为 O/P。这正是我想要的。

现在我还需要 ROWS 的计数。我是这样做的

SELECT count(mem_id)
FROM tbl_group_join 
WHERE group_id = '24' GROUP BY group_id.

但它使 O/P 成为一行。也就是说,我在一个字段中得到 O/P 为 2。

现在我需要在一个 QUERY 中获得这两个结果。

任何可能性

提前致谢

费罗

【问题讨论】:

    标签: sql mysql


    【解决方案1】:
    SELECT *,
    (SELECT count(mem_id)
    FROM tbl_group_join 
    WHERE group_id = '24' GROUP BY group_id
    ) as memAmount 
    FROM `tbl_group_join` tgj 
    LEFT JOIN tbl_groups tg ON tg.group_id = tgj.group_id
    LEFT JOIN tbl_registeration tr ON tr.mem_id = tgj.mem1_id 
    WHERE tgj.group_id =24 LIMIT 0 , 30
    

    【讨论】:

    • 谢谢pixeline..这正是我想要的。
    • 谢谢pixeline。这种类型的查询叫什么?
    • 它被称为子选择,这是执行此操作的最差方法。
    • 还有没有其他办法rexem?
    • 是的,使用像您在我的回答中看到的那样的内联视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多