web-dev-qa-db-fra.com

Comment récupérer les valeurs de deux colonnes du même nom?

J'ai cette requête:

$query
    ->select(array('a.id', 'a.alias', 'b.category_id', 'b.item_id', 'c.id', 'c.name', 'c.alias'))
    ->from($db->quoteName('#__Zoo_category', 'a'))
    ->join('INNER', $db->quoteName('#__Zoo_category_item', 'b') . ' ON (' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.category_id') . ')')
    ->join('INNER', $db->quoteName('#__Zoo_item', 'c') . ' ON (' . $db->quoteName('b.item_id') . ' = ' . $db->quoteName('c.id') . ')')
    ->where($db->quoteName('a.alias') . ' = \'chubut\'');

Comme vous pouvez le constater, je récupère 2 alias: a.alias et c.alias. J'ai besoin que le navigateur affiche 2 alias.

Si je crée un écho sur $ value-> alias, le navigateur affiche le c.alias, pas le a.alias. . Où est a.alias? Comment puis-je l'obtenir?

$db->setQuery($query);
$resultado = $db->loadObjectList();

foreach ($resultado as $key => $value) {
    echo "alias: $value->alias";
}
1
George Berkeley

Vous pouvez utiliser le mot clé AS.

Essaye ça:

$query
    ->select('a.id, a.alias AS cat_alias, b.category_id, b.item_id, c.id, c.name, c.alias AS item_alias')

    ...
    ...

;

Ensuite

foreach ($resultado as $key => $value) {
    echo "alias: $value->cat_alias";
}

Note: L'utilisation de AS mot-clé n'est pas obligatoire, vous pouvez donc l'omettre. Par exemple:

$query->select('a.id, a.alias cat_alias, c.alias item_alias');
3
Farahmand