3

良い一日。

test1 と test2 の 2 つのテーブルがあります。

構造テーブル test1:

テスト1

構造テーブル test2:

テスト2

テーブルtest1 whereの 1 つのクエリ削除行を使用し、テーブルtest2 whereidn='22222'のすべての行を削除する必要があります。table2.subscription_id = table1.subscription_id

while または forech を使用しないでください。SQL クエリは 1 つだけです。

それらは外部キーではありません!

出来ますか?

4

3 に答える 3

4

もちろん可能です。

のドキュメントを確認してくださいDELETE(複数テーブルの削除のためだけにいくつかの節があります)。

構文:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]

たとえば、あなたの場合:

DELETE test1.*,  test2.*
FROM test1, test2
WHERE test1.subscription_id = test2.subscription_id
    AND test1.idn = '22222'; 

他の方法も可能です。

外部キーを使用していた場合は、はるかに簡単になります。

于 2013-02-22T19:51:52.383 に答える
3

これは機能しませんか:

DELETE Table1, Table2
FROM Table1
LEFT JOIN Table2
ON Table1.Id = Table2.Id
WHERE Table1.Id = 1;

SQL フィドルのデモ

于 2013-02-22T19:51:34.860 に答える
2

これを試して

   DELETE
        test1, test2
   FROM
   test1  JOIN test2 
   WHERE
        test1.idn = 22222 AND
        test2.description_id = test1.description;

デモSQLFIDDLE

于 2013-02-22T19:54:48.463 に答える