Nette Database – proč fetchAll po obyčejném left join indexuje pomoci primary key z right table?

smog
Člen | 2
+
0
-

Joinovaná tabulka one-one|null odpovidající záznam mít nemusí a pokud je ve výběru sloupec rightTable.ID a leftTable.ID ma alias, tak NULL řádky z výsledku vypadnou. Což je nežádoucí u LEFT JOIN.

m.brecher
Generous Backer | 905
+
-10
-

@smog

Překopíroval jsem titulek a text dotazu pohromadě jako prompt:

Nette Database – proč fetchAll po obyčejném left join indexuje pomoci primary key z right table? Joinovaná tabulka one-one|null odpovidající záznam mít nemusí a pokud je ve výběru sloupec rightTable.ID a leftTable.ID ma alias, tak NULL řádky z výsledku vypadnou. Což je nežádoucí u LEFT JOIN.

do copilot.microsoft.com

a obdržel kvalitní, na první pohled důvěryhodný výklad s nástinem řešení:

„Tohle je past Nette Database a záludnost, která při LEFT JOINu a fetchAll() umí pořádně překvapit. Pojďme si to rozebrat…“

nemá cenu, abych to zde kopíroval, hoď to do copilota a otestuj, ne vždycky jsou navržené postupy správně, ale dost často ano. A hlavně napiš, jak Jsi dopadl.

Editoval m.brecher (28. 6. 3:42)

Kamil Valenta
Člen | 844
+
0
-

@smog a jaký výsledek bys očekával? Jaký je důvod aliasovat ID primární tabulky a za ID, podle kterého je resultset poskládaný do pole, považovat joinovanou, která existovat nemusí? Vždyť to dělá přesně to, co sis ručně sám vynutil…

Tak si to projdi „by fetch()“ a poskládej si to do pole dle libosti.