الخلية LEFT JOIN مشكلة - المفقودين العمود الأيسر
سؤال
وأواجه مشاكل مع استعلام SQL المستخدمة لعرض حقول الشخصي العرف وأي (اختياري) القيم المناظرة.
وهنا هو الاستعلام SQL أنا باستخدام:
SELECT pf.`id`, pf.`name`, pv.`value` FROM `profile_fields` AS pf
LEFT JOIN `profile_values` AS pv ON (pf.`id` = pv.`field_id`)
WHERE (pf.`site_id` = '0' OR pf.`site_id` = '%d') AND (pv.`user_id` = '%d' OR pv.`user_id` IS NULL)
ORDER BY pf.`order` ASC
والمشكلة أواجه هو أن أي الأعمدة مع عدم وجود سجلات profile_values
المقابلة لا تظهر على الإطلاق، عندما ينبغي لها أن تظهر، ولكن فقط مع قيمة فارغة.
وشكرا جزيلا!
المحلول
وحاول تحريك الأوضاع القيم الملف الى البيان التسجيل:
SELECT pf.`id`, pf.`name`, pv.`value` FROM `profile_fields` AS pf
LEFT JOIN `profile_values` AS pv ON (
pf.`id` = pv.`field_id` AND
(pv.`user_id` = '%d' OR pv.`user_id` IS NULL)
)
WHERE (pf.`site_id` = '0' OR pf.`site_id` = '%d')
ORDER BY pf.`order` ASC
لا تنتمي إلى StackOverflow