テーブルを作成するためのスクリプトは次のとおりです。
CREATE TABLE clients (
client_i INT(11),
PRIMARY KEY (client_id)
);
CREATE TABLE projects (
project_id INT(11) UNSIGNED,
client_id INT(11) UNSIGNED,
PRIMARY KEY (project_id)
);
CREATE TABLE posts (
post_id INT(11) UNSIGNED,
project_id INT(11) UNSIGNED,
PRIMARY KEY (post_id)
);
私の PHP コードでは、クライアントを削除するときに、すべてのプロジェクト投稿を削除したいと思います。
DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
投稿テーブルには外部キーがなくclient_id
、 のみですproject_id
。 が渡されたプロジェクトの投稿を削除したいと思いますclient_id
。
投稿が削除されていないため、現在は機能していません。
ベストアンサー1
テーブルからエントリを削除することを指定するだけですposts
。
DELETE posts
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id
編集:詳細については、この代替回答