আমার টেবিলগুলি তৈরি করার জন্য এখানে স্ক্রিপ্ট রয়েছে:
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)
);
আমার পিএইচপি কোডে, ক্লায়েন্টকে মুছে ফেলার সময়, আমি সমস্ত প্রকল্পের পোস্টগুলি মুছতে চাই:
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)
প্যাটার্নের পরিবর্তে একটি । (
alias
টেবিলের নামের জন্যও এটি ব্যবহার করতে পারেন।