これが、テーブルを作成するスクリプトです。
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
。
削除された投稿がないため、現在これは機能していません。
DELETE posts FROM posts JOIN projects ...
なくですIN (subquery)
。(Yehosefからの回答は、優先パターンの例を示しています。)
alias
テーブル名に使用してそれを使用することもできます。