Špecifický select v nette/database – každá hodnota len raz
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- matto
- Člen | 55
Ahojte, rád by som vás požiadal o pomoc s jedným selectom v DB.
Potrebujem vybrať jeden konkrétny stĺpec a to tak, že vždy sa vyberie
len jeden jediný riadok s rovnakou hodnotou.
Príklad: mám inzeráty, pri každom inzeráte je stĺpec Obec (tá je
uložená ako string, aj keď možno niektorí budú namietať, že je lepšie
mať ešte tabuľku s obcami a ukladať len ich ID..) a ja potrebujem získať
zoznam obcí v ktorých sa nachádza aspoň jeden inzerát.
Zatiaľ ma napadli dve riešenia, ani jedno sa mi ale nepáči:
- mať tabuľku s Obcami a použiť inner join – ako sa join používa v nette databse? Zatiaľ som si vystačil len s related, tu mi to ale už nestačí. V tomto riešení sa mi nepáči, že musím využívať ďalšiu tabuľku.
- z databázy vyselektovať všetky riadky a cez php to vo foreach cykle vyfiltrovať – tu si už nie som istý rýchlosťou
- riešenie? Určite dá rovno vyselektovať podľa mojích potrieb, ale nenapadá ma ako :-(
- petr.pavel
- Člen | 535
Předpokládám, že používáš Nette Database:
$obce = $db->table('inzerat')->select('DISTINCT obec')->order('obec')->fetchPairs('obec', 'obec');
Editoval petr.pavel (1. 5. 2013 12:10)