Ciao a tutti,
il problema di oggi è questo.
Ho due tabelle flk_users e flk_cards legate da una relazione uno a molti flk_users.id-flk_cards.user_id.
Entrambe le tabelle hanno un campo status int(1).
Vorrei implementare la query:
SELECT u.id, u.username FROM `flk_users` `u` JOIN flk_cards c ON u.id = c.user_id ORDER BY u.username ASC
con AR e CDbCriteria in un metodo della classe FlkUsers.
Ecco il codice:
$criteria = new CDbCriteria;
$criteria->alias = 'u';
$criteria->select= 'u.id,u.username';
$criteria->join= 'JOIN flk_cards c ON u.id = c.user_id';
$criteria->order=' u.username ASC';
$users = self::model()->findAll($criteria);
Mi viene ritornato il seguente errore:
CDbCommand ha riportato un errore nell'esecuzione della query SQL: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'status' in field list is ambiguous. The SQL statement executed was: SELECT id, username, email, createtime, lastvisit, superuser, status, u.id, u.username FROM `flk_users` `u` JOIN flk_cards c ON u.id = c.user_id ORDER BY u.username ASC
Mi sembra di capire che il campo ‘status’ è ambiguo…
Ora, ho tre domande:
Perchè l’SQL generato contiene tutti i campi di flk_users anche se ho specificato
$criteria->select= 'u.id,u.username'
?
In che senso ‘status’ è ‘ambiguous’?
Che cosa sto sbagliando e come posso risolvere?
Grazie!
Andrea