[megoldva] MYSQL - eredmények szűrése

UPDATE: Köszönöm szépen a segítséget mindenkinek, sikerült megoldani!

Sziasztok!

Van nekem egy ilyenem:

SELECT * FROM ceg LEFT JOIN cegelerh ON ceg.id=cegelerh.ceg_id AND cegelerh.megye_id=$_GET[megye] WHERE ceg.nev LIKE '%$_GET[s_ceg_neve]%' AND ceg.$_GET[kat] = 1 GROUP BY cegelerh.megye_id ORDER BY ceg.nev LIMIT $tol, 10

A bajom a GROUP BY. Ugye az lenne a lényeg, hogy minden cégnél, ahol több elérhetőség is van, ott csak 1 darabot listázzon ki. Az a baj, hogy a GROUP BY kiszűri azokat a találatokat is, amik másik céghez tartoznak, de ugyanabban a megyében vannak, így a találati lista nem ad vissza korrekt eredményt.

Hogy adom meg a GROUP BY-nak hogy csak akkor szűrjön, ha azonos ceg.id van? Esetleg milyen workaround van rá?

(Nézegettem az allekérdezéseket is, hogy hátha az a megoldás, de az még nem nagyon tiszta nekem).

Hozzászólások

Szerintem ez al-select lesz. De könnyebb lenne ha a táblaszerkezet is látható lenne. Kezdd el, és szólj hogy mi nem megy.

Mellékesen úgy látom hogy ez valamilyen webes alkalmazás alá dolgozik, gondolom PHP. _Soha_ ne használj alkalmazás select-jeiben

select *

-ot!

select *

csak közvetlenül query-ben használatos ha keresünk valamit.
Ne légy rest, ha 200 mező van a táblában akkor írd ki a kétszáz mező nevét a kis kezeddel. :)
Ugyanis ha később bővítened kell a táblát, vagy ami rosszabb ki kell venni valamilyen mezőt, akkor nyálazhatod heteken át a PHP kódodat.
Másrészt meg ezért nem dolgozik a GROUP BY sem rendesen...

---
"A megoldásra kell koncentrálni nem a problémára."

Szervusz !

Ez esetben csatlakoznék az előttem szólóhoz, itt szükséges felsorolni a mezőneveket.
SELECT DISTINCT ceg.id ... vs ez lesz a te barátod;
sajna betegség miatt használhatatlan vagyok :-(

CSZ

Szia, egy subselect-tel meg tudod oldani.
Javaslatom még annyi, hogy a SELECT-bből a $_GET[''] dolgokat szedd ki. Ha ugyanis nem az érkezik amit vársz, kellemetlen meglepetésekben lehet részed. (SQL injection)

--
Ami elől menekülnek, az után szaladnak.

ne csak a megyere group by-olj, hanem a cegid-ra is.
GROUP BY ceg.id, cegelerh.megye
igy csak az azonos cegeken belul fog megye szerint csoportositani.

Tyrael