2010-06-05 6 views
1

Dire que j'ai ces tables:noms des paramètres de colonne MySQL

people(id, name), cars(person_id, car)

et cette requête:

SELECT c.car 
FROM people as p, cars as c 
WHERE c.person_id = p.id 
    AND p.id = 3 

Je veux la colonne c.car de prendre son nom du champ name dans la people tableau, comme ceci (SQL non valide, juste pour illustrer):

SELECT c.car AS(SELECT name FROM people WHERE id = 3)

Comment faire?

Répondre

3

L'alias doit être codé en dur dans votre requête. Vous ne pouvez pas modifier un alias en fonction des valeurs de données.

Vous devrez interroger à la fois la voiture et le nom de la personne (comme indiqué par la réponse @ VoteyDisciple) et les faire correspondre dans votre code d'application après les avoir récupérés.

1

Je ne suis pas sûr de comprendre complètement. Le champ c.car fait référence tout particulièrement au champ car dans le tableau cars.

Pour faire référence au champ name dans le tableau people, utilisez p.name

SELECT c.car, p.name 
FROM people as p, cars as c 
WHERE c.person_id = p.id 
    AND p.id = 3 
0

Vous ne pouvez pas en général. Quel serait le nom de la colonne si elle renvoyait plusieurs résultats différents? Si vous savez qu'il ne peut retourner que 1 résultat, vous devez le rechercher, puis utiliser SQL dynamique pour aliaser la colonne dans une requête séparée.

Questions connexes