এগুলির মতো ডিবাগিং পরিস্থিতিগুলির চাবিকাঠিটি আউটপুটটি কী তা দেখার জন্য তার নিজস্ব নিজস্ব সাবকোরি / ইনলাইন ভিউ চালানো:
SELECT TOP 1
dm.marker_value,
dum.profile_id
FROM DPS_USR_MARKERS dum (NOLOCK)
JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id
AND dm.marker_key = 'moneyBackGuaranteeLength'
ORDER BY dm.creation_date
যে চলমান, আপনি দেখতে যে profile_id
মান মেলেনি u.id
মান u162231993
যা ব্যাখ্যা করবে কেন কোনো mbg
রেফারেন্স ফিরে আসবে null
(বাম ধন্যবাদ যোগদানের তুমি কিছুই পাবে যদি এটি একটি ভেতরের যোগদানের ছিল)।
আপনি নিজেকে ব্যবহার করে একটি কোণে কোড করেছেন TOP
, কারণ আপনি যদি অন্য ব্যবহারকারীদের জন্য এটি চালাতে চান তবে আপনাকে ক্যোয়ারীটি টুইট করতে হবে। একটি ভাল পদ্ধতির হবে:
SELECT u.id,
x.marker_value
FROM DPS_USER u
LEFT JOIN (SELECT dum.profile_id,
dm.marker_value,
dm.creation_date
FROM DPS_USR_MARKERS dum (NOLOCK)
JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id
AND dm.marker_key = 'moneyBackGuaranteeLength'
) x ON x.profile_id = u.id
JOIN (SELECT dum.profile_id,
MAX(dm.creation_date) 'max_create_date'
FROM DPS_USR_MARKERS dum (NOLOCK)
JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id
AND dm.marker_key = 'moneyBackGuaranteeLength'
GROUP BY dum.profile_id) y ON y.profile_id = x.profile_id
AND y.max_create_date = x.creation_date
WHERE u.id = 'u162231993'
এটির সাহায্যে আপনি সিস্টেমের যে কোনও ব্যবহারকারীর জন্য রেকর্ড পরীক্ষা id
করতে where
ক্লজটিতে মানটি পরিবর্তন করতে পারেন ।