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中:

多表语法:

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)您只能使用单个删除语句从一个表中删除

2) 缺少关键字 FROM - 例如。

从 test12 中删除...

如果您需要从多个表中删除,那么是否可以在删除级联时使用外键约束?

如果做不到这一点,我猜你将不得不编写一个 PL/SQL 函数来完成这项工作。

于 2012-08-21T07:34:52.513 回答