sql >> データベース >  >> RDS >> Mysql

sqlalchemyの複数の列を持つ別のテーブルからテーブルを更新する

    私はあなたができるとは思わない。したがって、これは実際には答えではありませんが、コメントするには長すぎます。

    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つのクエリだけにするのに十分賢いでしょう。たぶんそうだ。とにかく役立つことを願っています。




    1. MySQL:レコードが存在しない場合でも、範囲内のすべての日付を選択します

    2. グループごとにSQLのパーセンテージを計算する

    3. DockerizedDjangoアプリ用のMySQLDBのシード

    4. MySQLのORDERBYorderDESC付近の構文エラー