Обновление colPos с расширением typo3 9.0.1 - PullRequest
0 голосов
/ 27 ноября 2018

После обновления потока до 9.0.1 мне нужно обновить colPos элементов.

Это прекрасно работает:

UPDATE `tt_content` 
SET colPos = ((tx_flux_parent * 100) + 11) 
WHERE tx_flux_column = "content";

Но мне также нужно обновить локализованные элементы содержимого.Он имеет в tx_flux_parent локализованный родительский uid.Но мне нужен родительский uid стандартного языка.

Мне нужно получить значение "tx_flux_parent" в tt_content от l18n_parent.Поэтому я пытаюсь построить запрос с l18n_parent следующим образом:

UPDATE `tt_content` as t1 
SET colPos = (( (SELECT t2.tx_flux_parent 
                 FROM tt_content t2 
                 WHERE t1.l18n_parent = t2.uid) * 100) + 11) 
WHERE t1.tx_flux_column = "content";

И получить это:

MySQL meldet: Dokumentation 1093 - Таблица 't1' указана дважды,и как цель для 'ОБНОВЛЕНИЯ' и как отдельный источник для данных

1 Ответ

0 голосов
/ 27 ноября 2018

MySQL не разрешает ссылаться на таблицу , которая обновляется , снова в другом подзапросе, , если не находится внутри предложения FROM ( Производная таблица ).

Однако в данном конкретном случае вы можете использовать «Self-Join»:

UPDATE `tt_content` as t1 
JOIN `tt_content` as t2 
  ON t1.l18n_parent = t2.uid 
SET t1.colPos = ((t2.tx_flux_parent * 100) + 11) 
WHERE t1.tx_flux_column = 'content'
...