Как выбрать два последних вставленных идентификатора?
Здесь я объясню, как я могу их использовать. Это мой запрос:
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
))
Это должно почти дублировать все записи, связанные с последней, но одной записью таблицы2, для последней записи таблицы2.
Это работает прямо сейчас, но только потому, что я еще не удалял запись.
Если я удалю последнюю запись из таблицы2 и вставляю другую, мой генератор будет генерировать новый ПК, который не является последним + 1.
например: Последние два идентификатора: 18 -1 9. я Удалите 19 и вставьте еще один. Теперь два последних идентификатора - 18-20.
Таким образом, Max(PK_Table2)
будет равен 20, а Max(PK_Table2)-1
будет равен 19, но мне нужно 18.
Вам необходимо выполнить следующие действия:
Это было бы:
WHERE FIELD3 =
(
SELECT MAX(PK_Table2) FROM Table2
WHERE PK_Table2 < (SELECT MAX(PK_Table2) FROM Table2)
)
Еще один вопрос: возьмите последние два, а затем получите второй последний.
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
)