DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   SQL baze podataka - Sponzor: Baze-Podataka.net (http://www.devprotalk.com/forumdisplay.php?f=10)
-   -   prvo po jedan item svakog proizvodjaca, a onda ostatak (http://www.devprotalk.com/showthread.php?t=1400)

dee 21. 08. 2006. 20:52

prvo po jedan item svakog proizvodjaca, a onda ostatak
 
ima li koga, mlogo mi je hitno? :)

imam tablicu nekih proizvoda. jedna od stavki je i 'proizvodjac'. znaci, recimo nesto tipa:

naziv proizvoda | opis | cijena | proizvodjac


trebam search koji radi ovo:

korisnik da upit, a query mu vrati sve proizvode vezane uz taj upit ali tako da prvo navede po jedan proizvod svakog proizvodjaca (koji je najrelevantniji po kriteriju), a nakon toga da ostatak sta je nasao. znaci, poanta je da se na vrhu rezultata vide svi proizvodjaci, da se ne desi situacija da recimo cijela prva strana bude samo jedan proizvodjac, nego prvo po jedan proizvod svih proizvodjaca a onda ostatak, nebitno kako.


:)

tnx

jablan 21. 08. 2006. 21:19

Ovo ti je zadatak za 2 upita, a ne za jedan... Prvi je da ti da po jedan proizvod od svakog proizvođača, drugi da vrati sve p. koji zadovoljavaju kriterijum...

dee 21. 08. 2006. 21:25

a kako da izvedem ovo za po jednog od svakog proizvodjaca?

jer, poanta je da prema zadanom kriteriju dobijem najrelevantniji jedan item svakog proizvodjaca. a nakon toga ostale rezultate samo po relevantnosti.

s tim da, oni koje sam izlisto u prvih par, gdje je po jedan od svakog proizvodjaca, da su iskljuceni iz ostatka rezultata. taj dio mi nije najbistriji.

jablan 21. 08. 2006. 21:35

Kako računaš relevantnost? Koja je baza/verzija u pitanju?

dee 21. 08. 2006. 21:59

relevance ide odavde:

Kôd:

SELECT * , MIN( cijena) AS min, MAX( cijena) AS max, COUNT( id ) AS broj, MATCH naziv AGAINST ('upit') AS relevance FROM `tablica` WHERE MATCH naziv AGAINST ('upit') GROUP BY naziv

a za verziju MySQLa ne znam. dobio sam tu skriptu nesto da editiram, tako da nemam pojma s kojom verzijom radi...

Blood 21. 08. 2006. 23:47

Probaj nesto ovako.

Recimo da trazis po opisu:
Kôd:

SELECT * FROM `tabela` WHERE `opis` LIKE `%$search%` GROUP BY `proizvodjac`;

Pedja 22. 08. 2006. 12:32

Aj' ti posalji jedan SQL skript koji kreira tabele sa testnim podacima... Ovo sto si poslao je prilicno konfuzno.

dee 22. 08. 2006. 12:43

Ma fora je sto sam dobio skriptu na edit bez baze bez iceg. Znam sta je u tablici po onom sta vidim u queryju. Skripta sa queryjima unutra i molbu -> hitno hitno :)

uglavnom , rijesio sam stvar sa dva upita. prvi ostaje ovako kao gore i on vadi sve iteme. drugi na kraju radi samo ...GROUP BY proizvodjac ORDER BY relevance i onda te rezultate (kojih je svega nekoliko) excludam iz prikaza ove potpune liste.

nije najljepse rjesenje, ali radi a kako ni cijela skripta nema veze s urednoscu i jedino bitno je 'odma', ne grize ni mene nesto savjest :)


hvala svima na pomoci


Vreme je GMT +2. Trenutno vreme je 23:38.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.