Nette Database – proč fetchAll po obyčejném left join indexuje pomoci primary key z right table?
- m.brecher
- Generous Backer | 905
@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
@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.