gpt4 book ai didi

MySQL LEFT JOIN 问题 - 缺少 LEFT 列

转载 作者:行者123 更新时间:2023-11-29 01:19:29 28 4
gpt4 key购买 nike

我在使用用于显示自定义配置文件字段和任何(可选)对应值的 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 记录的任何列在应该显示时根本没有显示,但只有一个空值。

非常感谢!

最佳答案

尝试将配置文件值条件移动到 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

关于MySQL LEFT JOIN 问题 - 缺少 LEFT 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/333771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com