[SQL] Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • XzeroD
  • Registratie: September 2009
  • Laatst online: 21-07 20:35

XzeroD

ⓧ ⓩ Ⓔ Ⓡ Ⓞ Ⓓ

Topicstarter
Hoi iedereen,

Ik ben bezig met een webshop en loop tegen een probleem aan.
Ik heb 2 left joins voor schoenen en nu wil ik er een count op gooien alleen krijg ik de volgende foutmelding:

SQL:
1
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause


De query is nogal ingewikkeld voor mij doende, ik heb zelf het idee dat het door de 2e LEFT JOIN komt op productmaten.
Ik loop helemaal vast en volgens mij zie ik iets over het hoofd.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT COUNT(p.an_id) AS COUNTER, m.s_Titel_text
FROM tblProducten p
LEFT JOIN tblProductGroepen g
  ON (g.an_id=p.i_groep_id)
LEFT JOIN tblProductMaten m 
  ON (m.i_product_id = p.an_id)
WHERE p.b_verwijderd_checkbox = false
  AND g.b_verwijderd_checkbox = false
  AND p.s_afbeelding_image <> ''
  AND p.c_Prijs_currency <> 0
  AND ( m.s_Titel_text = 'XL')
  AND p.b_actief_checkbox = true
  AND (
    IF(p.c_actie_currency > 0, p.c_actie_currency, p.c_prijs_currency) >= 24
    AND IF(p.c_actie_currency > 0, p.c_actie_currency, p.c_prijs_currency) <= 100
 )


Ik heb al geprobeerd om een GROUP BY te gooien op p.an_id maar dan krijg ik een heleboel rijen terug genaamd COUNTER wat niet klopt aangezien ik maar 1 rij terug moet krijgen.

Ik hoop dat iemand mij iets meer kan uitleggen waardoor de foutmelding komt en/of wat het betekend want op google staat het behoorlijk vaag.

-- Opgelost --
Ik heb het volgende
SQL:
1
SELECT COUNT(p.an_id) AS COUNTER, m.s_Titel_text

veranderd in
SQL:
1
SELECT COUNT(p.an_id) AS COUNTER

Nu heb ik wel het juiste resultaat, heel stom zoiets van me zelf.

[ Voor 12% gewijzigd door XzeroD op 01-09-2010 18:35 ]


Acties:
  • 0 Henk 'm!

  • Keeper
  • Registratie: Juni 2001
  • Niet online

Keeper

<3 Ruby

Ik neem aan dat je per m.s_Titel_text een COUNTER wilt zien?

Dan moet je GROUP BY doen op dat veld, en niet op p.an_id.

Acties:
  • 0 Henk 'm!

  • XzeroD
  • Registratie: September 2009
  • Laatst online: 21-07 20:35

XzeroD

ⓧ ⓩ Ⓔ Ⓡ Ⓞ Ⓓ

Topicstarter
Keeper schreef op woensdag 01 september 2010 @ 18:09:
Ik neem aan dat je per m.s_Titel_text een COUNTER wilt zien?

Dan moet je GROUP BY doen op dat veld, en niet op p.an_id.
De query voert wel weer uit, alleen helaas nog niet het behaalde resultaat.
Ik krijg nu 39 rijen terug zoals:
COUNTERm.s_Titel_text
2S
5M
9M
7M


Terwijl het eigenlijk iets terug zou moeten geven zoals het volgende:
COUNTERm.s_Titel_text
39S

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
Je hebt 2x een S in je database staan en nu vraag je aan jouw database om daar 39 van te maken? Dus alle andere resultaten, bv. de M-etjes, moeten op dezelfde hoop worden gegooid? Die S lijkt mij fout te zijn, dat kan ook een M of nog iets anders zijn, daar mag een database nooit en te nimmer lukraak een gooi naar doen, dat is niet meer dan de kluit belazeren.

Vraagje: Weet je zeker dat je een webshop wilt maken? Hoe wil je met dit soort foute resultaten een administratie gaan voeren? Of orders gaan verwerken? Dit gaat je heel veel geld kosten.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
De melding is vrij duidelijk: je hebt een "group" kolom (de COUNT) en een "no group" kolom (de m.s_Titel_text) en die door elkaar gebruiken zonder een GROUP BY in je query mag niet.

Zie ook hier: Programming FAQ - SQL

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Bekijk Hoe werkt dat GROUP BY nu eigenlijk? eens ;)

* RobIII mept HuHu

[ Voor 10% gewijzigd door RobIII op 02-09-2010 14:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Gelukkig had ts al binnen een half uur geedit dat hij het stom van zichzelf vond aka dat allemaal wel begrijpt. :>

{signature}

Pagina: 1