前の行の列 (「next_line」) の 1 つからデータを選択し、最新の行 (「raw_line」) の別の列からデータを選択するこのクエリがあります。
SELECT CONCAT((SELECT `next_line` FROM `lines` ORDER BY id DESC LIMIT 1 OFFSET 1), (SELECT
`raw_line` FROM `lines` ORDER BY id DESC LIMIT 1))
このクエリはそのままで完全に機能します。しかし、私がやりたいことは、この出力を最新の行 *('composed_line')* の別の列に入れることです。しかし、私がこれを行うとき:
UPDATE `lines` set `composed_line`=CONCAT((SELECT `next_line` FROM `lines` ORDER BY id DESC LIMIT
1 OFFSET 1), (SELECT `raw_line` FROM `lines` ORDER BY id DESC LIMIT 1)) ORDER BY id DESC LIMIT 1;
次のエラーが表示されます。
#1093 - You can't specify target table 'lines' for update in FROM clause
だから私はこれを試しました:
UPDATE `lines` set `composed_line`=CONCAT((SELECT `next_line` FROM (SELECT * FROM `lines` ORDER
BY id DESC LIMIT 1 OFFSET 1) AS `alias`, (SELECT `raw_line` FROM (SELECT * FROM `lines` ORDER BY
id DESC LIMIT 1)) AS `alias2` ORDER BY id DESC LIMIT 1
そして、私はこのエラーを受け取りました:
#1248 - Every derived table must have its own alias
何が間違っているのかわかりません。'alias 'と'alias2'は派生テーブルのエイリアスとしてカウントされませんか?
どんな助けでも大歓迎です!