Я пытаюсь выяснить, как воспроизвести следующее, используя Django - кто-нибудь поможет?
INSERT INTO table1 (table2_id, a_field)
SELECT table2.id as table2_id, table3.a_field
FROM table2
INNER JOIN table3 ON
table3.table2_id == table2.id
WHERE table2.id = 123
Если я правильно понял (не мой исходный запрос ;-)), это выполните следующие действия:
- Создание записи в
table1
, где ... - поле с именем
table2_id
будет соответствовать id
строки в table2
и - поле с именем
a_field
будет соответствовать полю с таким же именем в a_field
в строке table3
и table2
/ table3
объектов, из которых эти значения являются чтение идентифицируется общим отношением table2.id
/ table3.table_id2
, а также table2
id
, являющимся 123
.
Я не вижу, как такие "вычисленные" значения поля могут передаваться команде create()
или get_or_create()
. Возможно ли это с помощью Q()
объектов?