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

削除、派生テーブルで更新しますか?

    サブクエリから直接削除することはできませんが、必要に応じて引き続き使用できます。JOINで使用する必要があります。 :

    DELETE usrs
    FROM usrs
        INNER JOIN (
            SELECT * FROM usrs WHERE name = 'john'
        ) t ON usrs.Id = t.Id
    

    または、INを使用することもできます :

    DELETE usrs
    WHERE ID IN (
       SELECT ID
       FROM usrs
       WHERE name = 'John'
    )
    

    そうは言っても、この例では、なぜサブクエリが必要なのかわかりません:

    DELETE usrs WHERE name = 'John'
    

    コメントに基づいて編集します。複数のテーブルから同時に削除するには、複数のDELETEを使用できます。 ステートメント、または次のようなものを使用できます:

    delete t1, t2, t3
    from (select 'john' as usr) t
      left join t1 on t.usr=t1.usr
      left join t2 on t.usr=t2.usr
      left join t3 on t.usr=t3.usr
    


    1. PowerShellを使用してパラメーターのデフォルト値を解析する–パート3

    2. データを失うことなくPostgreSQLをバージョン9.6からバージョン10.1にアップグレードするにはどうすればよいですか?

    3. 他の2つのVarchar列の連結を表す列を追加します

    4. MySQLに挿入する前にhtmlspecialchars()を使用するのは良いですか?