Nette\Database – problém s nejednoznačnou kolonkou
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Eda
- Backer | 220
Zdravím.
Tentokrát jsem narazil na následující nepříjemnost.
Uvažujme schéma:
A následující kód:
$d = $db->table('vozy_dopravci')
->where('nazevdopravce.nazev', 'ČSAD Horní Kotěhůlky')
->count('poradi'); // jde mi o groupnutí kolonky poradi v tabulce vozy_dopravci
Skončí chybou 1052 Column 'poradi' in field list is ambiguous
.
Stejná chyba nastane i u pokud v podobné situaci použiji funkci
group().
Později jsem zjistil, že by to šlo obejít explicitním určením tabulky (mateřské):
$d = $db->table('vozy_dopravci')
->where('nazevdopravce.nazev', 'ČSAD Horní Kotěhůlky')
->count('vozy_dopravci.poradi');
Nebylo by lepší, kdyby Nette\Database automaticky bralo v úvahu, že sloupce, které nemají explicitně určenou tabulku, jsou z tabulky mateřské? Vždyť u where to tak už funguje. API by pak podle mě bylo konzistentnější a pro nováčky pochopitelnější.
Používám Nette 2.0.5.
Editoval Eda (21. 9. 2012 14:09)