Noms des champs CodeIgniter ActiveRecord dans l'instruction JOIN

Je fais construire une requête concernant une JOINTURE. C'est la première fois que j'ai réalisé db trucs avec Active Record et j'ai touché un peu de plomb dans l'aile.

Je veux rejoindre une table appelée companies à la users table afin que je puisse obtenir le nom de l'entreprise, etc l'utilisateur se trouve. J'ai fait ce genre de succès comme:

function get_profile_by_username($username)
{
    $this->db->join('companies', $this->table_name.'.company_id = companies.id');
    $this->db->where('LOWER(username)=', strtolower($username));
    $query = $this->db->get($this->table_name);
    if ($query->num_rows() == 1) return $query->row();
    return NULL;
}

Cependant, le problème étant que les champs companiesils sont id et name sont retournés dans l'objet en tant que tout simplement appelé name.

Normalement, quand je voudrais écrire les premières requête, je voudrais donner des alias pour les tables et le résultat serait quelque chose comme u.company_idc.name. Donc, je voudrais savoir name n'avait rien à voir avec l'utilisateur, mais bien sûr, est le nom de la société. Et bien que n'étant pas un problème maintenant, mais potentiellement dans le futur, la id colonne évidemment ne peuvent pas coexister dans le jeu de résultats, de sorte que l'on obtient écrasés!

Comment pouvons-nous obtenir ce genre de différenciation entre les champs qui viennent de certains tableaux? Ou est-il une meilleure façon d'aller sur les jointures de table et de travailler avec joint requête ensembles de données/objets?

Edit:

Si je le faisais comme matière première requête que je ferais:

SELECT u.id, u.username, c.name
FROM users AS u
JOIN companies AS c
ON c.id = u.company_id
WHERE u.username = 'foobar';

Qui est grand, mais si j'ai essayé de faire ça dans l'enregistrement actif je pense que c'est plutôt une mauvaise pratique, si, il fonctionne à tous.

source d'informationauteur deed02392