JOIN 2 tabuliek na tabulku s dvoma stlpcami FK
- kocourPB
- Člen | 47
Dobry den.
Moja databaza ma 3 tabulky.
produkt(produkt_id, nazov, popis, cena …); kategoria(kategoria_id, nazov) a tretiu tabulku produkt_kategoria (produkt_id, kategoria_id) ktora obsahuje len foreign keys na predchadzajuce dve tabulky.
V modely by som rad vytvoril metodu nieco ako fetchAllByKategoriaId($id), ktora by vracala vsetky produkty zoradene napr. podla ceny produktu. V klasickom SQL by to vyzeralo asi takto:
`SELECT produkt.nazov, produkt.popis, produkt.cena FROM produkt_kategoria
JOIN produkt ON produkt.produkt_id = produkt_kategoria.produkt_id
JOIN kategoria ON kategoria.kategoria_id = produkt_kategoria.kategoria_id
ORDER BY produkt.cena`
Moja otazka znie, ako taketo nieco docielit v nette?
Dakujem
- kocourPB
- Člen | 47
ok diky. vyreseno
metoda v modelu:
public function fetchAllByKategoriaId($id) {
return $this->connection->query('
SELECT produkt.nazov, produkt.popis, produkt.cena FROM produkt_kategoria
JOIN produkt ON produkt.produkt_id = produkt_kategoria.produkt_id
JOIN kategoria ON kategoria.kategoria_id = produkt_kategoria.kategoria_id
WHERE kategoria.kategoria_id = ?
', $id);
}
v presenteru:
$this->template->produkty = $this->produktRepository->fetchAllByKategoriaId(2);
Editoval kocourPB (1. 7. 2014 16:02)