0

こんにちは私は単一のクエリから複数のテーブル行を削除しようとしています。

使ってみました

 $query="Delete from itineraries where itineraries_id='".$_REQUEST['id']."'
         Delete from itineraries_destination where itineraries_id='".$_REQUEST['id']."'
         Delete from itineraries_photo where itineraries_id='".$_REQUEST['id']."'";

しかし、それは機能していません。私に提案してください。

4

3 に答える 3

3

試す

Delete i, d, p
from itineraries i
inner join itineraries_destination d on d.itineraries_id = i.itineraries_id
inner join itineraries_photo p on p.itineraries_id = i.itineraries_id
where i.itineraries_id = $_REQUEST['id']

SQLFIddle

于 2012-08-21T07:30:16.723 に答える
0

そのすべては手動で削除します:

複数テーブルの構文:

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

または:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]
于 2012-08-21T07:33:08.207 に答える
0

1)1つのdeleteステートメントで1つのテーブルからのみ削除できます

2)キーワードFROMがありませんでした-例:

test12から削除します。ここで...

複数のテーブルから削除する必要がある場合、削除カスケードで外部キー制約を使用することは可能ですか?

それができない場合は、その作業を行うためにPL/SQL関数を作成する必要があると思います。

于 2012-08-21T07:34:52.513 に答える