यहाँ मेरे टेबल बनाने के लिए स्क्रिप्ट है:
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)
पैटर्न के बजाय पसंदीदा पैटर्न एक है। (येहॉस्फ़ का जवाब पसंदीदा पैटर्न का एक उदाहरण देता है।)
alias
तालिका के नाम के लिए भी उपयोग कर सकते हैं और इसका उपयोग कर सकते हैं।