2010-06-23 14 views
1

J'ai beaucoup de tables MySQL avec le même nom de colonne. Donc, je suis à la recherche de PDO ou SQL Hack pour SELECT * FROM plus de tables - qui retournera les noms de table dans les ensembles de résultats.FETCH_ASSOC et SELECT * FROM deux tables avec le même nom de colonne

Exemple:

'SELECT * FROM table0, table1';

Lorsque les deux tables a colonne 'nom'. Mais le résultat FETCH_ASSOC ne renvoie qu'un seul 'nom' - le dernier.

Résultat:

echo $result["name"]; 

résultat souhaité:

echo $result["table0.name"]; 
echo $result["table1.name"]; 
... 

Notez que

  1. Je ne peux pas renommer des colonnes DB être unique
  2. Je ne peux pas créer manualy alias pour chaque colonne (lot de tables/colonnes)
  3. Je veux un nom dans le jeu de résultats pas des nombres comme FETCH_NUM

Des idées? Merci!

+0

Qu'est-ce qui ne va pas du tout avec deux requêtes, une pour chaque table? –

Répondre

1

Le hack n'existe pas, vous devez créer des alias.

1

Vous avez dit que vous ne voulez pas aliaser toutes les colonnes parce qu'il y en a trop, mais avez-vous considéré uniquement les alias qui vous posent problème?

SELECT 
    *, 
    table0.name AS t0name, 
    table1.name AS t1name 
FROM table0 JOIN table1 ON ... 
+0

Merci pour la suggestion partielle. J'en ai trouvé un autre. FETCH_NAMED renvoie les colonnes problématiques sous forme de tableau numéroté et d'autres sous forme de scalaires ordinaires. [uniques] => val [nom] => Array ( [0] => val [1] => val ) La première consiste à mettre en forme de résultats avec php. – Cervenak

Questions connexes