Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie o konkretną wartość za pomocą tabeli przestawnej mySQL

spróbuj tego zapytania. Myślę, że możesz użyć HAVING klauzula.

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 W sqlFiddle mam przykładowe dane dla 2 różnych identyfikatorów turniejów i HAVING klauzula jest stosowana, aby zwracane były tylko wartości dla tego identyfikatora turnieju, możesz spróbować usunąć HAVING i zobaczyć, że zwraca 2 wiersze.

Twoje Grupuj według nie jest standardowe, ponieważ wybierasz również id i form_id. Proponuję usunąć identyfikator lub użyć MIN(id) lub MAX(id) i GROUP BY lead_id,form_id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. utwórz rekord mysql, jeśli nie istnieje, w przeciwnym razie zaktualizuj go

  2. Jak ustawić ścieżkę klasy sterownika jdbc?

  3. Jak mogę wstawić rzeczywisty czas zdarzenia do bazy danych za pomocą php mysqli?

  4. Dane ciągu, skrócone do prawej:1406 Dane za długie dla kolumny

  5. Używanie DATE_ADD z nazwą kolumny jako wartością interwału