Как присоединить таблицу к себе в ОБНОВЛЕНИИ SQLAlchemy (ядро sqlalchemy)? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь собрать вместе ie записей в таблице. Я ищу все записи, которые имеют нулевое значение в определенном столбце и хотят извлечь значение из этого столбца из записей, которые имеют значение в столбце. Примерные данные могут выглядеть следующим образом ...

MASTER_KEY   NAME
----------   ------------
1            Ben
2            Norman
             Ben
             Jane

И после выполнения запроса я бы хотел, чтобы таблица выглядела следующим образом ...

MASTER_KEY   NAME
----------   ------------
1            Ben
2            Norman
1            Ben
             Jane

Вот такой из SQL Я пытаюсь добраться до ...

UPDATE tbl new
JOIN (SELECT master_key, name
      FROM tbl
      WHERE master_key IS NOT NULL) old
ON (new.master_key is NULL
    AND old.name = new.name)
SET new.master_key = old.master_key

Поработав с этим некоторое время, я подумал, что решил его с помощью общих табличных выражений (CTE), только чтобы найти, что MySQL не поддерживает их до v8 (я на 5.7, и я думаю, что это последняя версия, поддерживаемая Google Cloud SQL, мой конечный пункт назначения.)

У меня был код, который сгенерировал SQL как текст, но я надеялся использовать конструкции SQLAlchemy, чтобы со временем получить больше независимости от базы данных.

Есть какие-нибудь идеи о том, как это сделать в SQLAlchemy без CTE? Спасибо!

...