2011-05-19 2 views
7

J'ai rencontré cette erreur dans MySQL pour la clause de jointure mais je suis assez nouveau à l'argument JOIN et je ne suis pas sûr de ce que cela signifie. Quelqu'un peut-il aider?Colonne dans laquelle la clause est ambiguë - Qu'est-ce que cela signifie?

Colonne 'id' dans la clause where est ambiguë

SELECT * FROM (`venues`) 
JOIN `venues_meta` ON `venues_meta`.`venue_id` = `venues`.`id` 
WHERE `id` = '12' 

Répondre

27

Vous devez qualifier complètement id parce venues et venues_meta ont tous deux une colonne appelée id.

+0

Morgan @ Chris Merci ça m'aide aussi – Ritesh

+2

donc juste pour le rendre clair pour les autres ... il faut devenir O WH lieux.id = 12 – renevdkooi

1

Je pense que vous voulez:

SELECT * FROM `venues` v, `venues_meta` m where v.venue_id = m.id AND m.id = '12' 

(mais assurez-vous qu'il est v.venue_id que vous voulez et non v.id)

+1

Vos virgules ne sont pas tout à fait cor rect si vous essayez d'alias 'lieux' comme' v' et 'lieux_meta' comme' m'. –

+0

ack! Vous avez raison - mis à jour. –

0

Essayez ce Code

SELECT v.* 
FROM `venues` AS `v` 
INNER JOIN `venues_meta` AS `vm` ON `vm`.`venue_id` = `v`.`id` 
WHERE `v`.`id` = '12' 
+1

Veuillez expliquer votre code un peu plus et quelle est votre solution – andreas

+0

J'ai créé un alias pour la compacité du code. Et spécifiez quelle table sélectionnez explicitement la colonne 'id' –

+0

Votre explication appartient à votre réponse ... – andreas

Questions connexes