2016-01-18 5 views
1

У меня есть SQL-запрос, который просто возвращает значение NULL в каждом поле. Он возвращает правильное количество строк для объема данных, вводимых в базу данных, но каждое значение столбца отображается как NULL, а не значение поля в MySQL.SQL Query возвращает каждое значение как NULL

Может ли кто-нибудь предложить какие-либо предложения для меня, пожалуйста?

SELECT items.form_id as 'Form ID', 
MAX(IF('field_id' LIKE 88,meta_value,NULL)) AS 'User ID', 
MAX(IF('field_id' LIKE 96,meta_value,NULL)) AS 'Display Name', 
MAX(IF('field_id' LIKE 95,meta_value,NULL)) AS 'User Role', 
MAX(IF('field_id' LIKE 301,meta_value,NULL)) AS 'Your District', 
MAX(IF('field_id' LIKE 97,meta_value,NULL)) AS 'Time Duty Logged', 
MAX(IF('field_id' LIKE 84,meta_value,NULL)) AS 'Date of Duty', 
MAX(IF('field_id' LIKE 85,meta_value,NULL)) AS 'Duty Start Time', 
MAX(IF('field_id' LIKE 86,meta_value,NULL)) AS 'Duty End Time', 
MAX(IF('field_id' LIKE 139,meta_value,NULL)) AS 'Duty Status', 
MAX(IF('field_id' LIKE 142,meta_value,NULL)) AS 'Duty Type', 
MAX(IF('field_id' LIKE 174,meta_value,NULL)) AS 'Which Event?', 
MAX(IF('field_id' LIKE 103,meta_value,NULL)) AS 'Total Hours', 
MAX(IF('field_id' LIKE 135,meta_value,NULL)) AS 'Duty Details', 
MAX(IF('field_id' LIKE 136,meta_value,NULL)) AS 'End Section', 
MAX(IF('field_id' LIKE 227,meta_value,NULL)) AS 'User Details', 
MAX(IF('field_id' LIKE 228,meta_value,NULL)) AS 'End Section' 
FROM wp_frm_item_metas as meta 
JOIN wp_frm_items as items ON (items.id = meta.item_id) 
WHERE items.form_id LIKE 6 
GROUP BY meta.item_id 

Я попытался теперь также следующие, и я все еще получаю NULL вместо каждого значения поля

SELECT items.form_id as 'Form ID', 
MAX(IF('field_id' = 88,meta_value,NULL)) AS 'User_ID', 
MAX(IF('field_id' = 96,meta_value,NULL)) AS 'Display_Name', 
MAX(IF('field_id' = 95,meta_value,NULL)) AS 'User_Role', 
MAX(IF('field_id' = 301,meta_value,NULL)) AS 'Your_District', 
MAX(IF('field_id' = 97,meta_value,NULL)) AS 'Time_Duty_Logged', 
MAX(IF('field_id' = 84,meta_value,NULL)) AS 'Date_of_Duty', 
MAX(IF('field_id' = 85,meta_value,NULL)) AS 'Duty_Start_Time', 
MAX(IF('field_id' = 86,meta_value,NULL)) AS 'Duty_End_Time', 
MAX(IF('field_id' = 139,meta_value,NULL)) AS 'Duty_Status', 
MAX(IF('field_id' = 142,meta_value,NULL)) AS 'Duty_Type', 
MAX(IF('field_id' = 174,meta_value,NULL)) AS 'Which_Event?', 
MAX(IF('field_id' = 103,meta_value,NULL)) AS 'Total_Hours', 
MAX(IF('field_id' = 135,meta_value,NULL)) AS 'Duty_Details', 
MAX(IF('field_id' = 136,meta_value,NULL)) AS 'End_Section', 
MAX(IF('field_id' = 227,meta_value,NULL)) AS 'User_Details', 
MAX(IF('field_id' = 228,meta_value,NULL)) AS 'End_Section' 
FROM wp_frm_item_metas as meta 
JOIN wp_frm_items as items ON (items.id = meta.item_id) 
WHERE items.form_id = 6 
GROUP BY meta.item_id 
+0

Используйте 'User_ID' вместо 'User ID', и поэтому один (без пробелов!) – Tewdyn

+0

field_ID нуждается в обратном тике, а не в apostrophe, а также в псевдонимах. так как это означает, что вы сравниваете строковое значение 'Field_ID' с' 88', которое никогда не будет равным. подобный оператор также нуждается в% для сравнения динамических значений. Если field_ID является числовым, я бы предложил прямо вверх '=' compare – xQbert

+0

. Вместо одиночных кавычек вы используете одинарные кавычки. Я голосую, чтобы закрыть эти типы вопросов как простые типографские ошибки. –

ответ

0

две вещи: Вам не придется цитировать имя field_id столбца и вы, вероятно, дон Не хотите использовать LIKE по числовому значению.

SELECT items.form_id as 'Form ID', 
MAX(IF(field_id = 88,meta_value,NULL)) AS 'User_ID', 
MAX(IF(field_id = 96,meta_value,NULL)) AS 'Display_Name', 
MAX(IF(field_id = 95,meta_value,NULL)) AS 'User_Role', 
MAX(IF(field_id = 301,meta_value,NULL)) AS 'Your_District', 
MAX(IF(field_id = 97,meta_value,NULL)) AS 'Time_Duty_Logged', 
MAX(IF(field_id = 84,meta_value,NULL)) AS 'Date_of_Duty', 
MAX(IF(field_id = 85,meta_value,NULL)) AS 'Duty_Start_Time', 
MAX(IF(field_id = 86,meta_value,NULL)) AS 'Duty_End_Time', 
MAX(IF(field_id = 139,meta_value,NULL)) AS 'Duty_Status', 
MAX(IF(field_id = 142,meta_value,NULL)) AS 'Duty_Type', 
MAX(IF(field_id = 174,meta_value,NULL)) AS 'Which_Event?', 
MAX(IF(field_id = 103,meta_value,NULL)) AS 'Total_Hours', 
MAX(IF(field_id = 135,meta_value,NULL)) AS 'Duty_Details', 
MAX(IF(field_id = 136,meta_value,NULL)) AS 'End_Section', 
MAX(IF(field_id = 227,meta_value,NULL)) AS 'User_Details', 
MAX(IF(field_id = 228,meta_value,NULL)) AS 'End_Section' 
FROM wp_frm_item_metas as meta 
JOIN wp_frm_items as items ON (items.id = meta.item_id) 
WHERE items.form_id = 6 
GROUP BY meta.item_id 
0
SELECT items.form_id as `Form ID`, 
MAX(IF(`field_id` = 88,meta_value,NULL)) AS `User ID`, 
MAX(IF(`field_id` = 96,meta_value,NULL)) AS `Display Name`, 
MAX(IF(`field_id` = 95,meta_value,NULL)) AS `User Role`, 
MAX(IF(`field_id` = 301,meta_value,NULL)) AS `Your District`, 
MAX(IF(`field_id` = 97,meta_value,NULL)) AS `Time Duty Logged`, 
MAX(IF(`field_id` = 84,meta_value,NULL)) AS `Date of Duty`, 
MAX(IF(`field_id` = 85,meta_value,NULL)) AS `Duty Start Time`, 
MAX(IF(`field_id` = 86,meta_value,NULL)) AS `Duty End Time`, 
MAX(IF(`field_id` = 139,meta_value,NULL)) AS `Duty Status`, 
MAX(IF(`field_id` = 142,meta_value,NULL)) AS `Duty Type`, 
MAX(IF(`field_id` = 174,meta_value,NULL)) AS `Which Event?`, 
MAX(IF(`field_id` = 103,meta_value,NULL)) AS `Total Hours`, 
MAX(IF(`field_id` = 135,meta_value,NULL)) AS `Duty Details`, 
MAX(IF(`field_id` = 136,meta_value,NULL)) AS `End Section`, 
MAX(IF(`field_id` = 227,meta_value,NULL)) AS `User Details`, 
MAX(IF(`field_id` = 228,meta_value,NULL)) AS `End Section` 
FROM wp_frm_item_metas as meta 
JOIN wp_frm_items as items ON (items.id = meta.item_id) 
WHERE items.form_id = 6 
GROUP BY meta.item_id 

Благодаря извещению всех - это решить это для меня идеально.

Смежные вопросы