1

Table1.

id | name
 1 | Test

Table2.

id | post | table1_id
 1 | mypst| 1

Table1whereから行を削除し、 whereid=1からすべての行を削除する必要がありますTable2table1_id =(1はid from Table1)。

私はこれを試しています:

DELETE FROM Table1 
INNER JOIN Table2 ON Table2.table1_id = Table1.id AND Table1.id = 1

しかし、エラーが発生します:

キーワード「INNER」の近くの構文が正しくありません。

どうしたの?

4

2 に答える 2

2

1つのクエリで複数のテーブルから削除を行うべきではありません

DELETE FROM Table2 WHERE table1_id = 1;
DELETE FROM Table1 WHERE id = 1

大丈夫なはずです。JOINを使ってやりたい特別な理由はありますか?

于 2013-01-16T15:01:55.983 に答える
2

あなたが物事を正しく行っており、外部キー(Table2.table1_id = Table1.id)を作成したと仮定しましょう。次に、必要なのはON DELETE CASCADETable1に設定することだけです。

この場合、あなたがしなければならないことはすべて次のとおりです。

DELETE FROM Table1 WHERE id = 1

...そしてリラックス。これはデータの一貫性です、おい:)

于 2013-01-16T16:52:40.510 に答える