【问题标题】:SQL count used in where clausewhere 子句中使用的 SQL 计数
【发布时间】:2016-07-19 08:22:07
【问题描述】:

我对 sql 有点陌生。我有一个问题涉及使用函数 count() 来限制我的 sql 中的 where 子句。

tbl_meeting

ID
TIMESTAMP
CAPACITY
...

tbl_attendance

ID
NAME
...

(我之间也有一张桌子,因为多人出席可以参加多个会议)

我想选择所有已满的会议。它应该看起来像这样,但我可以弄清楚。

select *
, count(LAM.id) as amount_attending
from tbl_meetings M
left join tbl_lnk_attendance_meeting LAM
on M.id = LAM.meeting_id
where M.capacity <> amount_attending

谢谢。

【问题讨论】:

    标签: sql count where-clause


    【解决方案1】:

    使用此方法查找会议的全部出席情况

    SELECT *
    FROM tbl_meetings M
    WHERE M.capacity = (SELECT COUNT(LAM.id) 
                        FROM tbl_lnk_attendance_meeting LAM 
                        WHERE M.id = LAM.meeting_id)
    

    【讨论】:

    • 谢谢。这就是我需要的。不知道您可以在 where 子句中使用子查询。
    【解决方案2】:

    试试这个:

    select * , count(LAM.id) as amount_attending
    from tbl_meetings M
    left join tbl_lnk_attendance_meeting LAM
    on M.id = LAM.meeting_id 
    group by LAM.id
    

    【讨论】:

      【解决方案3】:

      您已经在 select 语句中执行了 count 功能,因此您的 where 子句只需要与一个数字进行比较。

      select *
      , count(LAM.id) as amount_attending
      from tbl_meetings M
      left join tbl_lnk_attendance_meeting LAM
      on M.id = LAM.meeting_id
      where amount_attending = (whatever number constitutes a full meeting)
      

      【讨论】:

        猜你喜欢
        • 2019-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多