MYSQL - 获取没有调整大小的子项的父图像

时间:2017-03-03 10:01:40

标签: mysql

我在mySQL中有以下图像表,已经提供给我纠正,其中存储了与一组产品相关的所有图像。这些图像(大多数已经过)或将被调整大小,以便可以在应用程序的前端使用自适应图像。但是,当前端调用api并检查所请求的产品对象时,有些" main"图像似乎没有"替代品"(调整大小/儿童)。现在我不知道api在通过缩放器运行时如何保存这些图像。我刚刚被要求检查表格,以确保所有图像都有其他尺寸,并尽可能地尝试看看有什么问题。为此,我尝试对图像表运行一个查询,以获取所有没有父母的父母图像。

示例表如下所示,其中parent_id键是引用主图像的id键的外键。 这个约束是在表上设置的,其中****正在替换手头问题的实际值:

CONSTRAINT `****` FOREIGN KEY (`parent_id`) REFERENCES `image` (`id`)

样本表:

+----+-------+-------------+--------------+--------------+
| id | width |    path     |   publicId   |   parent_id  |
+----+-------+-------------+--------------+--------------+
| 1  |  300  |  somewhere  |      12      |     NULL     |
+----+-------+-------------+--------------+--------------+
| 2  |  400  |  somewhere2 |      34      |      1       |
+----+-------+-------------+--------------+--------------+
| 3  |  500  |  somewhere3 |      56      |      1       |
+----+-------+-------------+--------------+--------------+
| 4  |  200  |  somewhere4 |      78      |     NULL     |
+----+-------+-------------+--------------+--------------+
| 5  |  200  |  somewhere5 |      90      |     NULL     |
+----+-------+-------------+--------------+--------------+

为了获得没有孩子的所有父图像,我使用了以下查询:

SELECT publicId, version, mimeType FROM image i WHERE parent_id IS NULL AND NOT EXISTS (SELECT id FROM image r WHERE r.parent_id = i.id)

有没有办法可以检查这是否实际上返回了正确数量的未调整大小的父图像,因为表中总共有125397行?

1 个答案:

答案 0 :(得分:1)

对返回的数据进行正面和负面测试,以便对查询感到满意。

正面测试是为了确认您的查询返回的结果符合您的业务要求。否定测试是为了确认您的查询排除的记录应根据您的业务要求排除。

然而,查询似乎是正确的。