Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
where子句中使用的SQL计数_Sql_Count_Where Clause - Fatal编程技术网

where子句中使用的SQL计数

where子句中使用的SQL计数,sql,count,where-clause,Sql,Count,Where Clause,我对sql有点陌生。我有一个问题涉及到在我的sql中使用函数count()作为where子句的限制 tbl_会议 ID TIMESTAMP CAPACITY ... tbl_出席率 ID NAME ... (我还有一张桌子在中间,因为多个与会者可以参加多个会议) 我想选择所有已满的会议。看起来应该是这样,但我能猜出来 select * , count(LAM.id) as amount_attending from tbl_meetings M left join tbl_lnk_atten

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

tbl_会议

ID
TIMESTAMP
CAPACITY
...
tbl_出席率

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
选择*
,将(LAM.id)计算为出席人数
来自tbl\M会议
左加入tbl_lnk_出席会议林
在M.id=LAM.meeting\u id上
其中M.容量金额
谢谢。

试试这个:

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

您已经在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)

使用此方法查找会议的全部出席人数

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子句中使用子查询。