【发布时间】:2016-04-23 09:51:45
【问题描述】:
我有两个名为 distance 和 place 的 MySQL 表,如下所示:
距离
╔════╦══════╦═══════╗
║ id ║ name ║ point ║
╠════╬══════╬═══════╣
║ 1 ║ Call ║ A ║
║ 2 ║ Foo ║ B ║
╚════╩══════╩═══════╝
地点
╔═══════╦═════════╗
║ point ║ address ║
╠═══════╬═════════╣
║ A ║ ABCD ║
║ B ║ CDEF ║
╚═══════╩═════════╝
'id' 是'distance' 表的主键,'point' 是'place' 表的主键。 “point”是“place”表引用的“distance”表的外键。
我想从 'place' 表中删除点 'A' 的行,即 id 等于 '1'。由于此外键是使用“on delete cascade constraint”创建的,因此也应删除位置表的相关行。
(也就是说,根据下表,应该删除距离表的第一行和地点表的第一行)。
这是我迄今为止在 PHP 代码下尝试过的查询:
mysql_query("delete p.point from place p where p.point IN SELECT * FROM (SELECT d.point FROM distance d GROUP BY d.point where d.id='1' )");
但是,这不会删除行。没有错误信息。 谁能帮我解决这个问题?
【问题讨论】: