2010-08-31 10 views
1

Jamais suis tombé sur ça avant ...Problème avec 2 et rejoindre les noms de colonnes exactes

SELECT ".TBL_USERS.".username, 
     ".TBL_USERS.".id, <-----------| 
     ".TBL_COMMENTS.".creator,  | 
     ".TBL_COMMENTS.".comment,  |- same column name 
     ".TBL_COMMENTS.".date,   | 
     ".TBL_COMMENTS.".id <---------| 

Comme vous pouvez le voir, je sélectionner deux colonnes id ... Quand je les prends en PHP:

$userid = $row['id']; 

Comment vais-je être capable de savoir lequel est quoi?

Répondre

5

Vous devez utiliser un alias de colonne, avec AS mot-clé:

Exemple:

(id) AS id1.........(id) AS id2 

maintenant de résultats de votre requête, vous pouvez les obtenir comme ceci:

$userid1 = $row['id1']; 
$userid2 = $row['id2']; 

Plus d'infos:

http://dev.mysql.com/doc/refman/5.0/en/select.html

+0

Réponse parfaite! – sark9012

3

C'est l'une des raisons pour lesquelles ID est un mauvais choix pour une colonne ID. Vous devrez alias vos noms de colonnes pour savoir lequel est lequel.

+1

heh - J'ai pensé à "Intelligent Design" quand j'ai lu "ID" ... =) –

1

UTiLisATion AS pour renommer une de la colonne ID dans le tableau.

1

Rappelez-vous ... "AS" est pas nécessaire pour mysql, vous pouvez ...

SELECT ".TBL_USERS.".username, 
     ".TBL_USERS.".id id1, <-----------| 
     ".TBL_COMMENTS.".creator,  | 
     ".TBL_COMMENTS.".comment,  |- same column name 
     ".TBL_COMMENTS.".date,   | 
     ".TBL_COMMENTS.".id id2 <----------| 
+0

Merci pour cela, pour d'autres types de SQL, il est nécessaire alors? – sark9012

+0

+1: Bon conseil :) – shamittomar

+0

Je ne suis pas sûr si d'autres types de SQL nécessite "AS", ce serait bien si quelqu'un d'autre nous aidera. –