所以,我在SQLYog中构建了这个查询,它返回了我正在寻找的结果。但是,当我将其复制粘贴到php并使用mysqli运行每个查询/获取结果时,我的结果是不同的(即,一个字段为空而不是正确的结果)。
查询:
SET SESSION group_concat_max_len = 1000000;
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(CASE WHEN field_number = ''',
wp.field_number,
'''
THEN ',
IF(lng.value = NULL, 'wp.value', 'lng.value'),
' ELSE NULL END) AS ',
CONCAT(fm.field_name, IF(fm.rank <> 0, fm.rank, ''))
)
)INTO @sql
FROM wp_rg_lead_detail wp
JOIN vh_rg_form_map fm
ON fm.field_number = wp.field_number
AND fm.form_id = wp.form_id
LEFT JOIN wp_rg_lead_detail_long lng
ON wp.id = lng.lead_detail_id
WHERE wp.form_id = 1;
SET @sql = CONCAT('SELECT lead_id,', @sql, ' FROM wp_rg_lead_detail wp
LEFT JOIN wp_rg_lead_detail_long lng
ON wp.id = lng.lead_detail_id
WHERE form_id = 1 GROUP BY lead_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
我的结果几乎完全一样,唯一的区别在于图片领域。以下是一些区别的图片。
答案 0 :(得分:0)
我的愚蠢错误:我必须在where子句中添加一个部分,以确保我获得一个lead_id(其中lead_id = $ n)。我仍然不确定为什么我在php和yog中为同一个查询获得不同的响应,但修复我的查询解决了问题。