我无法找到一种方法来比较一个表(表 1)中的数据。
表1的部分内容
Date ID Item
---- ------- -----
2017-06-30 90 2200
2017-06-30 150 1200
2017-06-30 150 1201
2017-06-30 150 1202
2017-06-30 150 1203
2017-06-30 150 1204
2017-07-31 150 1201
2017-07-31 150 1202
2017-07-31 150 1203
2017-07-31 150 1204
2017-07-31 150 1205
2017-07-31 90 2200
我想要得到的结果是 1205,因为这是下个月的新项目。如果我能得到下个月不再有的元素,即 1200,那就太好了
** 编辑:我应该提到的一件事是 Table1 在 ID 列中也有不同的 ID。所以主要目标是比较精确的 ID=150(而不是 160 或 180)。 **
如果有任何建议,我将不胜感激。
谢谢
最佳答案
例如:
SELECT x.*
FROM my_table x
LEFT
JOIN my_table y
ON y.id = x.id
AND y.date = '2017-06-30'
AND y.item = x.item
WHERE x.date = '2017-07-31'
AND y.id IS NULL;
或
SELECT x.*
FROM my_table x
LEFT
JOIN my_table y
ON y.id = x.id AND y.date = x.date - INTERVAL 1 MONTH
AND y.item = x.item
WHERE x.date = '2017-07-31'
AND y.id IS NULL;
我本想把剩下的部分留给读者作为练习,但我发现我的计划已经泡汤了。
关于mysql - SQL - 比较一张表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794203/