hãy thử truy vấn này. Tôi nghĩ bạn có thể sử dụng HAVING
mệnh đề.
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
Trong sqlFiddle, tôi có dữ liệu mẫu cho 2 giải đấu khác nhau và HAVING
mệnh đề được áp dụng để chỉ các giá trị cho giải đấu_id đó được trả về, bạn có thể thử xoá HAVING và thấy rằng nó trả về 2 hàng.
Nhóm Theo của bạn không chuẩn vì bạn cũng đang chọn id và form_id. Tôi khuyên bạn nên bỏ id hoặc sử dụng MIN (id) hoặc MAX (id) và GROUP BY lead_id,form_id