Vyber z dvoch tabuliek naraz

peteret
Člen | 3
+
0
-

Dobrý den chcel by som sa spýtať ako selektnuť vec z inej tabulky

 $advertising = $this->database->table("advertising");
        $advertising->select("advertising.title");
        $advertising->select("advertising.city");
        $advertising->select("advertising.description");
        $advertising->select("advertising.time");
        $advertising->select("advertising.type");
        $advertising->select("advertising.price");
        $advertising->select("advertising.vip");
        $advertising->select("advertising.id");
        $advertising->select("advertising.views");
        $advertising->select("cities.cityid")->where("cities.cityid = advertising.city");
chemix
Nette Core | 1294
+
0
-

Ahoj @peteret a jak by vypadal cisty sql dotaz co bys chtel polozit do databaze?

emololftw
Člen | 79
+
0
-

Zdravím, máš nastavenou referenci (cizí klíč) mezi tabulkami? Tím definuješ vazby mezi tabulkami na sebe. Poté je jedno řešení použít metodu ref()

https://doc.nette.org/…ase/explorer#…

peteret
Člen | 3
+
0
-

SELECT
advertising.title,
advertising.city,
advertising.kraj,
advertising.description,
advertising.time,
advertising.type,
advertising.price,
advertising.time,
advertising.id,
advertising.views,
advertising.vip,
advertising.user,
cities.fullname,
photos.path,
photos.thumb,
photos.uniqueid
FROM advertising
JOIN photos
ON advertising.id = photos.uniqueid
JOIN cities
ON advertising.city = cities.cityid
WHERE kraj = ? AND typee = ? AND time = ? AND vip = ?
GROUP BY advertising.id
ORDER BY advertising.time DESC
LIMIT ?, 5

Melebius
Člen | 16
+
0
-

Pokud vím, Database Explorer neumí obecný JOIN, takže pokud si nevystačíte s metodami ref(), related() apod., je třeba sestoupit o úroveň níž a zadat dotaz ručně v rámci Database Core:

$rows = $this->database->fetchAll(
			'SELECT ...
			JOIN ...
			WHERE ...',
			$parametry...);

Ale tady si myslím, že by ref() mohl úplně stačit, např.:

$advertising->ref('cities', 'city')->fullname;

A pokud jsou v DB správně nastavené cizí klíče, není u ref() nutné zadávat druhý parametr.

Editoval Melebius (2. 12. 2021 10:00)

Polki
Člen | 553
+
0
-

@Melebius umí tuším jen left join pomocí metody alias