আমার উদাহরণ দিয়ে আমাকে আরও কিছুটা ব্যাখ্যা করুন।
টাস্ক: সঠিক তথ্য, যেখানে অনুচ্চারকরা (মাধ্যমিক বিদ্যালয় ছেড়ে চলে যাওয়া শিক্ষার্থীরা) স্কুল শংসাপত্র পাওয়ার চেয়ে আগে বিশ্ববিদ্যালয়গুলিতে আবেদন জমা দিয়েছে (হ্যাঁ, তারা আগে শংসাপত্র পেয়েছে, তাদের দেওয়া শংসাপত্রের তারিখ অনুসারে) সুতরাং, আমরা করব শংসাপত্র ইস্যু তারিখ ফিট করতে আবেদন জমা দিন তারিখ।
এভাবে। পরবর্তী মাইএসকিউএল-মত বিবৃতি:
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নিজের সাথে টেবিল দেওয়ার আর কোনও প্রয়োজন নেই (যেমন এটি উপকৃত ছিল)।