2010-02-23 5 views
0

Je suis en mesure de faire ce travail de code à l'aide db->query de CodeIgniter comme suit:Comment effectuer une jointure avec la classe Active Record de CodeIgniter sur une clé multicolonne?

$sql = 
'SELECT mapping_code,zone_name,installation_name 
    FROM installations,appearances,zones 
    WHERE 
    installations.installation_id = zones.installation_fk_id 
    AND appearances.installation_fk_id = installations.installation_id 
    AND appearances.zone_fk_id = zones.zone_id 
    AND 
    appearances.barcode = ? 
'; 

return $this->db->query($sql,array($barcode)); 

Le tableau « apparences » jette un « pas à la table unique » erreur si je tente cette aide de la classe Active Record.

Je dois joindre les apparences sur à la fois les tables de zone et d'installation.

Comment est-ce que je peux faire ceci?

Répondre

0

Jetez un coup d'œil à $ this-> db-> join() si vous souhaitez utiliser la classe ActiveRecord. À l'heure actuelle, vous n'utilisez que du SQL simple qui n'a rien à voir avec le contenu ActiveRecord. Cela fonctionne-t-il lorsque vous utilisez un client MySQL comme phpMyAdmin, Navicat, etc?

+0

L'instruction SQL ci-dessus fonctionne parfaitement bien - j'essayais de la traduire en une série de méthodes d'enregistrement actives telles que db-> join() mais toutes mes tentatives produisent une erreur concernant 'table not unique' parce que je dois la même table dans plusieurs instructions ... –

+0

Pouvez-vous pastie dans votre tentative de jointure? –

Questions connexes