MySQL,按组过滤
我正在开发一个MySQl数据库,并为我们的投资建立了一个类似跟踪系统的东西。设备的库存编号,收到设备的人,何时收到,何时归还。如果返回的列为null,则此人仍然拥有该设备MySQL,按组过滤,mysql,grouping,where,Mysql,Grouping,Where,我正在开发一个MySQl数据库,并为我们的投资建立了一个类似跟踪系统的东西。设备的库存编号,收到设备的人,何时收到,何时归还。如果返回的列为null,则此人仍然拥有该设备 |InventoryNumber | user | receive | returned | +----------------+-------+------------+------------+ | X1 | Mark | 2017-01-01 | 2017-01-03 | | X1
|InventoryNumber | user | receive | returned |
+----------------+-------+------------+------------+
| X1 | Mark | 2017-01-01 | 2017-01-03 |
| X1 | Mark | 2017-01-03 | null |
| X2 | Frank | 2017-01-01 | null |
现在我想知道哪些设备没有被使用。因此,首先我必须按InventoryNumber对进行分组,但“显示”null
。后记我必须过滤,其中返回的值不为空
我知道如何分别做,但是在分组之后,他总是选择第一行,而不是空的那一行,所以我不能使用WHERE
我希望您能理解我的问题,并能帮助我。这将返回没有一行为空的所有数字。快速提醒:此处筛选器行包含筛选器组
SELECT InventoryNumber
GROUP BY InventoryNumber
HAVING SUM(returned IS NULL)=0
您可以将子查询与一起使用,而不在中,例如:
SELECT *
FROM table
WHERE returned IS NOT NULL
AND InventoryNumber NOT IN (
SELECT InventoryNumber
FROM table
WHERE returned IS NULL
);
您可以尝试以下方法:
select
`InventoryNumber`
from
`track`
where
`returned` is NOT NULL
group by `InventoryNumber`;
到目前为止你能提供你的代码吗?如果您已经有了这些部分,那么应该可以使用一个子查询。我希望避免使用多个select语句。不过,谢谢你。