如何选择最后两个插入的ID?
我在这里解释如何使用这些。这是我的问题:
INSERT INTO Table1 (FIELD1, FIELD2, FK_TABLE2, FIELD6)
(SELECT FIELD1, FIELD2
,(SELECT MAX(PK_Table2)
FROM Table2
)
,(FIELD4 + FIELD5) FROM Table1 WHERE FIELD3 = (
(SELECT MAX(PK_Table2)
FROM Table2) - 1
))
对于table2的最后一条记录,这几乎应该复制链接到table2的最后一条记录的所有记录。
现在可行,但仅仅因为我还没有删除记录。
如果我从table2删除最后一条记录并插入另一条记录,我的生成器将生成一个不是最后一个+ 1的新PK。
例如:最后两个ID是:18-19。我删除19并插入另一个。现在最后两个ID是18-20。
因此Max(PK_Table2)
将为20,而Max(PK_Table2)-1
将为19,但我需要它为18。
答案 0 :(得分:2)
您需要采取措施:
这将是:
WHERE FIELD3 =
(
SELECT MAX(PK_Table2) FROM Table2
WHERE PK_Table2 < (SELECT MAX(PK_Table2) FROM Table2)
)
另一个approch:获取最后两个,然后获得倒数第二个。
WHERE FIELD3 =
(
SELECT PK_Table2
FROM (SELECT PK_Table2 FROM Table2 ORDER BY PK_Table2 DESC LIMIT 2) x
ORDER BY PK_Table2 LIMIT 1
)