私はあなたができるとは思わない。したがって、これは実際には答えではありませんが、コメントするには長すぎます。
2列でクエリを簡単に作成できます(すでにご存知だと思います):
select_query = select([table2.c.col1, table2.c.col2]).where(table1.c.key == table2.c.key)
その後、メソッドwith_only_columns()
を使用できます 、api
を参照してください :
In[52]: print(table.update().values(col1 = select_query.with_only_columns([table2.c.col1]), col2 = select_query.with_only_columns([table2.c.col2])))
UPDATE table SET a=(SELECT tweet.id
FROM tweet
WHERE tweet.id IS NOT NULL), b=(SELECT tweet.user_id
FROM tweet
WHERE tweet.id IS NOT NULL)
しかし、updateステートメントからわかるように、2つの選択を効果的に実行できます。 (申し訳ありませんが、出力をあなたの例に完全に適合させることはできませんでしたが、あなたはその考えを理解していると確信しています。)
あなたが言うように、MySQL
かどうかはわかりません 1つのクエリだけにするのに十分賢いでしょう。たぶんそうだ。とにかく役立つことを願っています。