3

我有一个查询问题。我在这里和谷歌上搜索,但找不到解决方案。我可以使用循环或替代解决方案来做到这一点,但这意味着耗时(在页面加载时)......所以我想知道是否有“一个查询”解决方案。

我有一个包含 4 列的表:

id   class    day    hour
 1   9b3      1      3      
 2   9b4      1      3
 3   9b5      1      3
 4   9b3      1      5
 5   9b4      2      6
 6   9b5      2      6
 7   9b4      4      7
 8   9b3      3      6
 9   9b4      3      6
 10  9b5      3      6

我需要的是在同一天和同一时间恢复与所有三个类 9b3、9b4、9b5 匹配的日期和时间。

在上面的示例中,结果应该是:

day   hour
1      3
3      6
4

4 回答 4

3

试试这个:

SELECT day,hour
FROM yourTableName
WHERE class IN ('9b3','9b4','9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;

sqlfiddle demo

于 2013-10-19T22:04:26.110 回答
1
SELECT day,hour FROM table
WHERE class IN('9b3','9b4','9b5')GROUP BY day HAVING COUNT(class)=3;
于 2013-10-19T22:03:32.830 回答
1

这也有效...

SELECT day,hour
FROM Table1
WHERE (class = '9b3' or class =  '9b4' or class = '9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;
于 2013-10-19T22:07:39.320 回答
0

这可以通过使用 SQL 语句语法来实现,具体取决于您要执行的操作。可以像这样选择原始数据:

SELECT * FROM YourTable
   WHERE day='1' and hour='3'
于 2013-10-19T22:06:29.213 回答