Š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
+
0
-

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:

  1. 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.
  2. z databázy vyselektovať všetky riadky a cez php to vo foreach cykle vyfiltrovať – tu si už nie som istý rýchlosťou
  3. riešenie? Určite dá rovno vyselektovať podľa mojích potrieb, ale nenapadá ma ako :-(
petr.pavel
Člen | 535
+
0
-

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)

matto
Člen | 55
+
0
-

Dokonalé, ďakujem.