Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> only_full_group_by - dopasowanie zapytania
rafik73
post 26.08.2017, 07:11:04
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kicaj
post 26.08.2017, 08:39:19
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


SELECT DISTINCT id_g


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
rafik73
post 29.11.2017, 18:44:09
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:26