Found duplicate columns in database result set – proč?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
n.u.r.v.
Člen | 485
+
0
-

Ahoj, nevíte proč mi nette u následujícího DB dotazu hází User Notice – Found duplicate columns in database result set? Nevím, asi už na to dnes čumím moc dlouho…

$query = 'SELECT f.ID AS FIRM_ID, f.TITLE AS FIRM_TITLE, f.ADDRESS AS FIRM_ADDRESS, f.CITY AS FIRM_CITY, f.ZIP
AS FIRM_ZIP,
 f.DATE_PAID_TO AS FIRM_ACCES_TO, f.ACTIVE AS FIRM_ACTIVE,
 fd.SCHOOL_TYPE, fd.YEARCLASS_MAX, fd.LANG_CODE, fd.ADMIN_NAME, fd.ADMIN_SURNAME, fd.ADMIN_EMAIL,
 fd.HEADMASTER, fd.ADVISOR, fd.LANG_CODE,
 u.ID AS USER_ID, u.CLASSROOM_ID, u.USER_TYPE, u.USERNAME, u.PASSWORD, u.PASSWORD_PARENTS,
u.PASSWORD_FRIENDS,
 u.NAME, u.SURNAME, u.EMAIL, u.ACTIVE AS USER_ACTIVE,u.SEX
FROM firms AS f
 JOIN firms_data AS fd ON (fd.FIRM_ID = f.ID)
LEFT JOIN users AS u ON (u.FIRM_ID = f.ID)
WHERE f.ID = "987654"
 AND u.USERNAME = "username"
 AND (u.PASSWORD = "1234" OR u.PASSWORD_PARENTS = "5678" OR u.PASSWORD_FRIENDS =
"9101112")
LIMIT 1';

$row = $this->database->query($query)->fetch();

Pozn. $this->database je Nette\Database\Context.

Když DB dotaz vykonám např. v phpmyadmin, tak v funguje. Dokonce i v nette BARu mi to ukazuje dotaz a výsledek 1 řádek (což je ok)…

Díky

Caine
Člen | 216
+
+1
-

To znamena, ze dva a vice sloupcu se jmenujou stejne a dochazi u nich k prepisovani hodnot. Po SQL strance to spatne neni, ale v PHP* uz jo..

Z napr SELECT t1.id, t1.name, t2.id FROM ... ti vznikne ['id' => 123, 'name' => 'blabla'] – treti sloupec chybi, protoze vlastne prepsal prvni..

* – PDO + fetch assoc

n.u.r.v.
Člen | 485
+
0
-

Jenže to by neměl být problém když používám aliasy, nebo ty na to nemají vliv?

Šaman
Člen | 2668
+
+4
-

Já tam vidím 2× fd.LANG_CODE.

n.u.r.v.
Člen | 485
+
0
-

Ty jo, ajo – dík – jsem fakt slepej :-(

MartinitCZ
Člen | 580
+
0
-

Alias to řeší ;)