ম্যানুয়ালটি উদ্ধৃত করা হচ্ছে:
আছে: ডাটাবেসের মধ্যে অন্যান্য টেবিল অন্তর্ভুক্ত তথ্য ব্যবহার করে একটি সারণী সারিগুলি মুছুন করার দুটি উপায় আছে উপ-নির্বাচন ব্যবহার করে, বা অতিরিক্ত টেবিল উল্লেখ USINGদফা । কোন কৌশলটি আরও উপযুক্ত তা নির্দিষ্ট পরিস্থিতিতে নির্ভর করে।
বোল্ড জোর আমার। অন্য টেবিলের অন্তর্ভুক্ত নয় এমন তথ্য ব্যবহার করা সামান্য বিট জটিল, তবে সহজ সমাধান রয়েছে। স্ট্যান্ডার্ড প্রযুক্তির অস্ত্রাগার থেকে শুরু করে ...
... একটি NOT EXISTSবিরোধী-আধা-যোগদান সম্ভবত সম্ভবত সবচেয়ে সহজ এবং সবচেয়ে দক্ষ DELETE:
DELETE FROM link_group lg
WHERE NOT EXISTS (
SELECT FROM link_reply lr
WHERE lr.which_group = lg.link_group_id
);
link_group_idএর প্রাথমিক কী এর কলামের নাম হিসাবে ধরে নেওয়া (যেহেতু সারণির সংজ্ঞা দেওয়া হয়নি) link_group।
কৌশল @Mihai মন্তব্য কাজ হিসাবে ভাল (সঠিকভাবে প্রয়োগ):
DELETE FROM link_group lg
USING link_group lg1
LEFT JOIN link_reply lr ON lr.which_group = lg1.link_group_id
WHERE lg1.link_group_id = lg.link_group_id
AND lr.which_group IS NULL;
তবে যেহেতু USINGক্লজে টেবিলের ভাবটি লক্ষ্য টেবিলের সাথে যুক্ত হয়েছে ( lgউদাহরণস্বরূপ) ক CROSS JOINএর সাথে আপনার একই টেবিলের আরেকটি উদাহরণ প্রয়োজন স্টেপিং পাথর ( lg1উদাহরণস্বরূপ) এর জন্য LEFT JOIN, যা কম মার্জিত এবং সাধারণত ধীর হয়।