Я соединяю две строки из одной таблицы, которые связаны между собой, в основном это «корневая строка» и последняя обновленная строка. Я надеюсь, что есть способ установить значение строки корневого столбца в строку в последнем обновлении. Только в возвращаемом результате я не хочу обновлять строку базы данных последнего столбца.
/* Table Name: posts */
+--------+---------+-------------+--------------+
| ID | ROOT | PUBLISHED | DELETED |
+--------+---------+-------------+--------------+
| 01 | 01 | FALSE | NULL |
+--------+---------+-------------+--------------+
| 02 | 01 | NULL | 01/03/2019 |
+--------+---------+-------------+--------------+
| 03 | 01 | NULL | 01/04/2019 |
+--------+---------+-------------+--------------+
| 04 | 01 | NULL | NULL |
+--------+---------+-------------+--------------+
Запрос, который я пытаюсь выполнить, выбирает строку 04, потому что она самая последняя, и я пытаюсь присоединиться к корневой строке (01), а затем сделать значение строки 04 с "FALSE" в возвращаемом результате, оставаясь "NULL" в базе данных.
SELECT p1.*, p2.ID, p2.PUBLISHED
FROM posts p1
LEFT JOIN posts p2 ON p1.ID = p2.ID
WHERE p1.DELETED = NULL
Я пробовал несколько вещей и осматривался, но я только что застрял.
SELECT p1.*, p2.ID, p2.PUBLISHED, p1.PUBLISHED = p2.PUBLISHED
FROM posts p1
LEFT JOIN posts p2 ON p1.ID = p2.ID
WHERE p1.DELETED = NULL
SELECT p1.*, p2.ID, p2.PUBLISHED, p1.PUBLISHED as p2.PUBLISHED
FROM posts p1
LEFT JOIN posts p2 ON p1.ID = p2.ID
WHERE p1.DELETED = NULL
Спасибо всем, кто читает это