Avatar billede Morten Professor
12. april 2021 - 18:31 Der er 1 kommentar og
1 løsning

SQL Group by men mangle nogle values

Hej

Jeg har et problem med jeg laver group by.
Jeg mangler values, som jeg ellers har når jeg ikke laver group by her er koden:

<?php
$sql = "SELECT **_posts.post_title, **_posts.ID, **_posts.post_parent, **_posts.post_modified, **_posts.post_type, **_postmeta.post_id, MIN(**_postmeta.meta_value), **_postmeta.meta_key
  ,**_posts.post_title FROM **_postmeta
        INNER JOIN **_posts ON **_postmeta.post_id = **_posts.ID WHERE **_posts.post_type ='product' and **_postmeta.meta_key in ( '_sku', '_regular_price', '_sale_price', '_max_variation_regular_price', '_min_variation_sale_price', '_stock_status') GROUP BY **_posts.post_title ORDER BY meta_value LIMIT ".$lng." ";

mangler de sidste values dem med priser.
Håber det kan give en ide til hvad der skal til.

Med venlig hilsen
Morten
Avatar billede arne_v Ekspert
12. april 2021 - 19:01 #1
I standard SQL må der kun være group by felter og aggregerede funktioner i selet listen.

SELECT a,b,MIN(c),MAX(d) FROM x GROUP BY a,b

er OK.

SELECT a,b,c,d,MIN(e),MAX(f) FROM x GROUP BY a,b

vil give syntax fejl.

MySQL er anderledes - den giver ikke syntax fejl på den sidste. Den tager bare nogle værdier for c og d fra nogle tilfældige rækker.

Og resultatet er næsten altid ubrugeligt.

Derfor: følg standard SQL for GROUP BY.
Avatar billede Morten Professor
13. april 2021 - 08:08 #2
Mange tak skal du have :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester