mysql - Sql查询读取多行

标签 mysql sql database

我有一个表,其中存储了每天可用的工具。 这是结构

    |   Tool_ID  |     Date         |   Available   |
---------------------------------------
    |    1       |     20180501     |       1         |
    |    1       |     20180502     |       3         |
    |    1       |     20180503     |       1         |
    |    2       |     20180501     |       1         |
    |    2       |     20180502     |       0         |
    |    2       |     20180503     |       2         |

我们可以假设 toolID 1 是锤子,toolID 2 是铁砧。

我想不花一会儿时间就知道这三天是否有可用的工具。 例如,5 月 2 日至少有 1 个 toolID=1(锤子)可用,同时没有铁砧可用。

有办法只在 SQL 查询中找到这个吗?

最佳答案

好吧,我想到了group bymin():

select tool_id,
       (case when count(*) < 3 then 0
             else min(available)
        end) as min_available_for_all_three_days
from tools t
where date >= '20180501' and date < '20180504'
group by tool_id;

这假设如果缺少一行,则该工具不可用。

关于mysql - Sql查询读取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50725020/

相关文章:

c# sql 插入。使用未分配的局部变量?

sql - 在 SQLite 中实现查询缓存

java - 使用java在mysql数据库中删除表

mysql order varchar 字段为整数

Mysql:在另一列下方显示列的值

sql - 用户拥有数据库固定角色意味着什么?

Android OAUTH token 存储

java - 数据库-JTable交互

php - 根据月份名称获取记录,不考虑值是否存在

mySQL JOIN 语句的 COUNT 不正确匹配