Zadejte hledaný výraz...

GROUP BY výpis

Infix
verified
rating uzivatele
23. 3. 2015 22:53:00
Zdravíčko,
v nasledujúcom SELECTE z mysql spájam dve tabuľky. Jedna je firma kde sú používatelia a druhá firemné ponuky podľa id_comp. Chcem aby mi zobrazovalo iba jeden produkt od firmy aj keď ich tam má 12. Ide o to aby firma nemala napríklad pri výpise 3x ponuku, aby dostali možnosť prezentovať sa aj ostatné.
Funguje to OK ale keď dám refresh tak mi zobrazuje iba poslednú pridanú ponuku pritom tam mám funkciu RAND, neviete kde môže byť chyba ?? :) Okrem medzi počítačom a stoličkou.
$offers = mysql_query("SELECT * FROM firmy INNER JOIN offers ON firmy.id=offers.id_comp " . $WHERE_OFFERS . " GROUP BY firmy.id, offers.id_comp ORDER BY RAND () LIMIT 0,3") or die(mysql_error());
23. 3. 2015 22:53:00
https://webtrh.cz/diskuse/group-by-vypis/#reply1100890
Marián
verified
rating uzivatele
(4 hodnocení)
24. 3. 2015 09:48:40
Problem je ten, ze tvoj RAND() sa aplikuje na ten SELECT z firiem, nie na JOIN. Moznosti ako toto riesit je viacero, napriklad tak, ze tu random ponuku budes vyberat pomocou SUBQUERY alebo dalsia moznost zaobalit celu tvoju query do hlavnej query nejak takto:
24. 3. 2015 09:48:40
https://webtrh.cz/diskuse/group-by-vypis/#reply1100889
Infix
verified
rating uzivatele
24. 3. 2015 10:23:13
Zdravíčko,
ďakujem za odpoveď ale bohužiaľ mi to nejde :X vypíše mi toto Duplicate column name 'id'
Potrebujem tam dostať ale ešte tú premennú " . $WHERE_OFFERS . " kvôli tomu, aby vedelo k akej kategórií má zobraziť ponuky.
$WHERE_OFFERS = "WHERE cat = '".$category_id."'";
24. 3. 2015 10:23:13
https://webtrh.cz/diskuse/group-by-vypis/#reply1100888
Marián
verified
rating uzivatele
(4 hodnocení)
24. 3. 2015 10:55:07
Ten error ti pise, lebo mas v oboch tabulkach identicky nazvany stlpec "id". V tom selecte v zatvorke by nemala byt "*", ale iba stlpce, ktore realne vyuzijes (ale ja tvoje stlpce nepoznam, preto som tam dal *). Cize ked si to upravis, nejak takto, malo by to fungovat:
24. 3. 2015 10:55:07
https://webtrh.cz/diskuse/group-by-vypis/#reply1100887
Infix
verified
rating uzivatele
24. 3. 2015 11:07:35
Prepísal som to a stále mi píše to isté :(
SELECT * FROM (
SELECT f.id, f.firma, o.id, o.offer, o.price, o.cat, o.subcat, o.text, o.photo, o.id_comp
FROM firmy f
JOIN offers o ON (f.id = o.id_comp)
ORDER BY RAND()
) sub
GROUP BY sub.id
LIMIT 0, 3
24. 3. 2015 11:07:35
https://webtrh.cz/diskuse/group-by-vypis/#reply1100886
Marián
verified
rating uzivatele
(4 hodnocení)
24. 3. 2015 11:10:37
Nemozes vyberat z 2 tabuliek stlpec s tym istym nazvom. Teraz tam mas 2x stlpec "id". Na jeden z nich pouzi alias, napr.:
24. 3. 2015 11:10:37
https://webtrh.cz/diskuse/group-by-vypis/#reply1100885
Infix
verified
rating uzivatele
24. 3. 2015 11:24:52
Prepísal som to takto
a vypíše mi toto, ja neviem či už som maďar alebo čo tam robím zle
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.id, o.offer, o.price, o.cat, o.subcat, o.text, o.photo, o.id_comp FROM firmy' at line 2
24. 3. 2015 11:24:52
https://webtrh.cz/diskuse/group-by-vypis/#reply1100884
Marián
verified
rating uzivatele
(4 hodnocení)
24. 3. 2015 11:31:12
Ten alias si tam pouzil zle. Malo by to byt takto:
24. 3. 2015 11:31:12
https://webtrh.cz/diskuse/group-by-vypis/#reply1100883
Infix
verified
rating uzivatele
24. 3. 2015 11:34:16
Ste šikovný :) funguje to ! Ďakujem Vám
// Téma vyriešená , LOCK
24. 3. 2015 11:34:16
https://webtrh.cz/diskuse/group-by-vypis/#reply1100882
Pro odpověď se přihlašte.
Přihlásit