Я искал по всему Интернету, и мне не повезло найти ответ на мой вопрос. Я надеюсь, что это еще не было опубликовано, но если вы можете указать, где я могу найти ответ, я был бы признателен.
Мне удалось взять следующие данные таблицы ниже:
id lead_id form_id field_number value 1 1 1 1 Hosker 2 1 1 7 b**********@yahoo.com 3 1 1 6 Hyundai Tournament of Champions 4 1 1 3 Adam Scott 5 1 1 4 Harris English 6 1 1 5 2014-01-02 23:59:47 7 1 1 8 5b409692-e9ed-486e-8d77-7d734f1e023d
И получить результат ниже, используя эту строку запроса:
SELECT id, lead_id, form_id, MAX(case when field_number = 1 then value end) username, MAX(case when field_number = 7 then value end) email, MAX(case when field_number = 6 then value end) tournament_name, MAX(case when field_number = 3 then value end) primary_golfer, MAX(case when field_number = 4 then value end) backup_golfer, MAX(case when field_number = 5 then value end) date, MAX(case when field_number = 8 then value end) tournament_id FROM `wp_rg_lead_detail` GROUP BY lead_id id lead_id form_id field_number value value value value value value value 1 1 1 1 Hosker b**********@yahoo.com Hyundai Tournament of Champions Adam Scott Harris English 2014-01-02 23:59:47 5b409692-e9ed-486e-8d77-7d734f1e023d
Я просто хочу, чтобы строка запроса вытягивала только связанные данные, когда значение столбца tournament_id равно определенному значению. Как мне это сделать?
попробуйте этот запрос. Я думаю, вы можете использовать предложение HAVING
.
SELECT id, lead_id, form_id, MAX(case when field_number = 1 then value end) username, MAX(case when field_number = 7 then value end) email, MAX(case when field_number = 6 then value end) tournament_name, MAX(case when field_number = 3 then value end) primary_golfer, MAX(case when field_number = 4 then value end) backup_golfer, MAX(case when field_number = 5 then value end) date, MAX(case when field_number = 8 then value end) tournament_id FROM `wp_rg_lead_detail` GROUP BY lead_id HAVING tournament_id = '5b409692-e9ed-486e-8d77-7d734f1e023d'
sqlFiddle В sqlFiddle у меня есть пример данных для 2 разных турнирных_ид, и предложение HAVING
применяется так, чтобы возвращались только значения для этого турнира, вы можете попробовать удалить HAVING и увидеть, что он возвращает 2 строки.
Ваша группа не является стандартной, так как вы выбираете id и form_id. Я предлагаю вам отказаться от идентификатора или использовать MIN (id) или MAX (id) и GROUP BY lead_id,form_id
Если я понимаю, что вы просите, попробуйте:
SELECT * FROM TABLE_NAME WHERE tournament_id = specific_value;