我有一个mysql数据库,这里是列;
日期
计算机实验室
句号
只有两个可能的数据值进入计算机实验室列,即A101或A102
然而,可以有重复的数据行,但是有不同的计算机实验室数据。
例如,
日期= 3-15-16计算机实验室= A101周期=1
日期= 3-15-16计算机实验室= A102周期=1
我的网页从收到几个句点1,3,5的用户那里得到输入
这就是我需要的:
如果句点1或3或5同时包含A101和A102,则返回该日期。
我认为这会奏效,但它不管用
mysql_query("SELECT date FROM reservations WHERE period IN ($periods) AND lab in ('A101','A102') GROUP BY date HAVING COUNT(*) = 2");发布于 2016-02-03 00:48:03
我认为你需要按时间和日期进行分组才能得到你想要的:
SELECT date, period
FROM reservations
WHERE period IN ($periods) AND lab in ('A101', 'A102')
GROUP BY period, date
HAVING COUNT(*) = 2;这将检查给定时期是否有两个实验室。你在检查三个句点的集合是否正好有两个条目。
嗯,我意识到你可能打算检查这三期是否同时分配了两个实验室,任何组合。如果是,那么使用count(distinct)
SELECT date
FROM reservations
WHERE period IN ($periods) AND lab in ('A101', 'A102')
GROUP BY date
HAVING COUNT(DISTINCT lab) = 2;https://stackoverflow.com/questions/35166556
复制相似问题