2

カスタム プロファイル フィールドと (オプションの) 対応する値を表示するために使用される 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レコードのない列が表示されるべきときにまったく表示されず、空の値だけが表示されることです。

どうもありがとう!

4

1 に答える 1

7

プロファイル値の条件を JOIN ステートメントに移動してみてください。

 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
于 2008-12-02T12:19:10.403 に答える