Versio

Group by

Overzicht Reageren

Roy D

Roy D

21/04/2011 20:14:38
Quote Anchor link
Beste forum leden!

Waarschijnlijk een kleinigheidje maar het wil niet lukken. De originele query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$query = mysql_query("
SELECT id, fabrikant, naam, afbeelding_thumb, prijs, omschrijving_kort, afbeelding_low, sku, ean
FROM producten_new
WHERE id IN (".$query5_ids.")
ORDER BY fabrikant ASC,".$sorteren."
LIMIT ".$offset.", ".$items_per_pagina
);


Nu wil ik dat er geen dubbele items vanuit sku en ean geselecteerd worden. Enkel de goedkoopste. Resultaat (group by en min toegevoegd):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$query = mysql_query("
SELECT id, fabrikant, naam, afbeelding_thumb, MIN(prijs), omschrijving_kort, afbeelding_low, sku, ean
FROM producten_new
WHERE id IN (".$query5_ids.")
GROUP BY sku, ean
ORDER BY fabrikant ASC,".$sorteren."
LIMIT ".$offset.", ".$items_per_pagina
);


Jammer genoeg werkt het niet. Wat doe ik fout?

Alvast bedankt!
Gewijzigd op 21/04/2011 20:15:27 door Roy D
 
PHP hulp

PHP hulp

24/05/2012 20:35:28
Gesponsorde koppelingen:
 
Noppes Homeland

Noppes Homeland

21/04/2011 20:20:39
Quote Anchor link
1. zorg dat je mysql goed configureerd
2. zorg dat je GROUP BY klopt, dat houdt in dat je alle velden dient te benoemen in de GROUP BY die niet gerelateerd zijn aan de aggragate functions MIN/MAX/SUM/COUNT/AVG enz
3. key de query eens toe aan een variabele dan kan je die echoen en kan je gelijk ook zien wat er als query uitgevoerd gaat worden
 
Roy D

Roy D

21/04/2011 20:27:49
Quote Anchor link
Draait bij een knappe hosting, mysql zal goed geconfigureerd zijn.
Ook een echo is aanwezig waarbij ik de resultaten zie, helaas nog steeds dubbele producten, met dezelfde sku of ean.
Dus als ik het goed begrijp:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$query = mysql_query("
SELECT id, fabrikant, naam, afbeelding_thumb, MIN(prijs), omschrijving_kort, afbeelding_low, sku, ean
FROM producten_new
WHERE id IN (".$query5_ids.")
GROUP BY id, fabrikant, naam, afbeelding_thumb, omschrijving_kort, afbeelding_low, sku, ean
ORDER BY fabrikant ASC,".$sorteren."
LIMIT ".$offset.", ".$items_per_pagina
);


Er wordt op deze wijze toch niet aangegeven dat er geen dubbele sku en ean velden geselecteerd moeten worden?

Gebruik ik wel de juiste functie's hiervoor? Group by en min?
Gewijzigd op 21/04/2011 20:27:58 door Roy D
 
Aad B

Aad B

21/04/2011 20:31:17
Quote Anchor link
Je zal in je where ook nog toe moeten voegen dat je de goedkoopste producten wil zien. Dat lukt namelijk niet met een SELECT........MIN(prijs). Je groepeert op id en die zijn waarschijnlijk allemaal verschillend dus je krijgt ze allemaal te zien.
Gewijzigd op 21/04/2011 20:37:58 door Aad B
 
Karl Karl

Karl Karl

21/04/2011 21:17:14
Quote Anchor link
producten_new ...?
 
Roy D

Roy D

17/05/2011 20:25:36
Quote Anchor link
Ik kom er nog steeds niet uit.

Een eenvoudigere query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT id, name, price, sku, ean
FROM products
WHERE id IN (1,2,3,4,5,6)
ORDER BY name ASC


Hoe selecteer ik het goedkoopste product waar sku of ean bij 2 producten gelijk zijn? (en sku/ean niet leeg is)

Toevoeging op 18/05/2011 11:29:04:

Nog een schopje omhoog (A)
 



Overzicht Reageren