Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: only_full_group_by - dopasowanie zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
rafik73
Witam
Zacząłem korzystać z Mysql 5.7 i pojawił się problem z only_full_group_by.
Wcześniej miałem takie zapytanie:

  1. $oz_m_po_all_query = mysql_query("SELECT * FROM gz
  2. LEFT JOIN oz ON (oz_w_po=id_g OR oz_m_po=id_g)
  3. WHERE po = 1
  4. AND archiwum=0 AND id_g <> 1
  5. GROUP BY id_g
  6. ORDER BY ISNULL(oz_data) DESC , MAX(oz_data) ASC , oz_w_po = id_g" )
  7. or die('Błąd ');



Wyskakiwał mi błąd only_full_group_by. Zastosowałem sugestie i przerobiłem zapytanie tak:

  1. $oz_m_po_all_query = mysql_query("SELECT id_g , name , surname FROM gz
  2. LEFT JOIN oz ON (oz_w_po=id_g OR oz_m_po=id_g)
  3. WHERE po = 1
  4. AND archiwum=0 AND id_g <> 1
  5. GROUP BY id_g , oz_data , oz_w_po
  6. ORDER BY ISNULL(oz_data) DESC , MAX(oz_data) ASC , oz_w_po = id_g" )
  7. or die('Błąd ');


Nie wyrzuca błędu ale zwracane wyniki są nieprawidłowe. Powtarza id_g na liście - korzystam z kontrolki SELECT.
Nie mogę dojść z tym ładu. Nie wiem czy powodem nie jest grupowanie wg oz_data i oz_w_po, ale bez tego wywala błąd only_full_group_by
kicaj
SELECT DISTINCT id_g
rafik73
Dziękuję za sugestię.
Zastosowałem ANY_VALUE () i jestem na etapie testów.

Odświeżam

Mam zapytanie:

  1. SELECT o.id,MAX(so.DATA) FROM mowcy AS o
  2. LEFT JOIN zeb AS so ON so.id=o.id AND so.mowca=o.mowca
  3. WHERE
  4. o.archiwum = 0
  5. AND o.id<>1
  6. AND o.mowca = 3
  7. GROUP BY o.id
  8. ORDER BY ISNULL(o.id) DESC, MAX(so.DATA)


Kolumna data istnieje tylko w tabeli zeb. Nie wyświetla wartości rekordów z kolumny data.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.