Comment sélectionner des valeurs distinctes de 2 tables avec tri dans une requête?
J'ai
- table1 :
country
,theOrderColumn1
- table2 :
country
,theOrderColumn2
Je veux rejoindre DISTINCTES country
à partir de ces deux états:
SELECT DISTINCT `country` FROM `table1` ORDER BY `theOrderColumn1`
et
SELECT DISTINCT `country` FROM `table2` ORDER BY `theOrderColumn2`
Exemple:
table1 (country, theOrderColumn1): (uk, 1), (usa, 2)
table2 (country, theOrderColumn2): (france, 1), (uk, 2)
Je veux ce résultat:
france
uk
usa
OriginalL'auteur ali | 2011-09-28
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur RedFilter
OriginalL'auteur Icarus
Bien que vous obtiendrez les doublons si theOrderColumn est différente dans le tableau 1 et le tableau 2.
OriginalL'auteur Tom Mac
Cela dépend de ce que vous voulez et comment vous voulez joindre les deux tables ensemble. Si vous vous joignez basé sur "theOrderColumn", alors la requête serait
Si vous voulez vous joindre à l'échelle du pays (qui n'aurait de sens que le pays serait identique dans les deux tableaux), alors vous pourriez changer de "pays" dans la clause de jointure.
Également, en fonction de votre SQL dialecte parlé par votre SGBD, votre kilométrage peut varier avec la requête ci-dessus. Pouvez-vous préciser davantage ce que vous êtes après?
{ }
) sur la barre d'outils editeur de bien le format et la surbrillance de la syntaxe!j'ai éditer la question et d'expliquer plus...
erreur n ° 1052 - Colonne
country
dans la liste des champs est ambigu.OriginalL'auteur Robert Lowe
Si vous souhaitez préserver l'ordre donné par
theOrderColumn1
ettheOrderColumn2
dans le même temps, vous pouvez utiliser l'index de colonne pour spécifier leORDER BY
colonne.Prendre un coup d'oeil à la réponse à cette question: SQL de la Requête à l'Aide de la Commande Par l'UNION
OriginalL'auteur Xavi López