2010-11-28 19 views
0

alors je me bats avec ce que je devine est un problème très simple. J'ai cherché un peu, mais aucune des solutions que j'ai trouvées jusqu'ici n'a réussi à résoudre mon problème.Ambigueux gauche rejoindre?

SELECT arrangement_ID, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

Ce produit naturellement la « erreur ambiguë », puisque la colonne « arrangement_ID » est présent dans les deux tt_arrangement et tt_vaktliste_vakt. Pensant que c'était facile à corriger, je fait les modifications suivantes:

SELECT **arrangement_ID.tt_arrangement**, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

Cependant, cela produit l'erreur « colonne n'existe pas ». Et c'est là que je suis coincé. Vous ne savez pas si cela compte, mais lorsque vous utilisez SELECT *, la requête fonctionne comme prévu. Bien que ce n'est pas vraiment une option pour ce que je vais utiliser la requête pour.

En avance, merci pour toutes les réponses.

+0

Vous l'avez en arrière - il est censé être [nomtable]. [Nomcolonne] et non [nomdecolonne]. [Nomtable]. –

+0

Haha, merci. Je suppose que j'ai travaillé trop longtemps, en commençant à passer au code aveugle;) –

Répondre

3

Prefix le nom de la colonne ambiguë avec le tablename:

SELECT t_arrangement.arrangement_ID, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

(suppose HVA, Dato sont les noms de colonnes uniques)

(Vous pouvez également utiliser les alias, mais encore besoin de préfixe des noms de colonnes ambiguës avec alias)

1

Vous devez donner un nom à vos tables, comme ci-dessous. Je ne suis pas sûr que ce soit les lignes du haut à droite car je ne connais pas la structure de la table et je ne peux donc pas savoir quelle colonne vient d'où.

Espère que cela aide.

+0

+1 de ma part, une solution aussi bonne –