আমার উদাহরণ দিয়ে আমাকে আরও কিছুটা ব্যাখ্যা করুন।
টাস্ক: সঠিক তথ্য, যেখানে অনুচ্চারকরা (মাধ্যমিক বিদ্যালয় ছেড়ে চলে যাওয়া শিক্ষার্থীরা) স্কুল শংসাপত্র পাওয়ার চেয়ে আগে বিশ্ববিদ্যালয়গুলিতে আবেদন জমা দিয়েছে (হ্যাঁ, তারা আগে শংসাপত্র পেয়েছে, তাদের দেওয়া শংসাপত্রের তারিখ অনুসারে) সুতরাং, আমরা করব শংসাপত্র ইস্যু তারিখ ফিট করতে আবেদন জমা দিন তারিখ।
এভাবে। পরবর্তী মাইএসকিউএল-মত বিবৃতি:
UPDATE applications a
JOIN (
SELECT ap.id, ab.certificate_issued_at
FROM abiturients ab
JOIN applications ap
ON ab.id = ap.abiturient_id
WHERE ap.documents_taken_at::date < ab.certificate_issued_at
) b
ON a.id = b.id
SET a.documents_taken_at = b.certificate_issued_at;
পোস্টগ্র্রেএসকিউএল-এর মতো হয়ে যায়
UPDATE applications a
SET documents_taken_at = b.certificate_issued_at -- we can reference joined table here
FROM abiturients b -- joined table
WHERE
a.abiturient_id = b.id AND -- JOIN ON clause
a.documents_taken_at::date < b.certificate_issued_at -- Subquery WHERE
যেহেতু আপনি দেখতে পারেন, মূল subquery JOIN
এর ON
দফা এক হয়ে গেছে WHERE
শর্ত, যার দ্বারা conjucted হয় AND
অন্যদের, যা subquery কাছ থেকে কোন পরিবর্তনের সঙ্গে সরানো হয়েছে সঙ্গে। এবং JOIN
নিজের সাথে টেবিল দেওয়ার আর কোনও প্রয়োজন নেই (যেমন এটি উপকৃত ছিল)।