J'ai besoin d'obtenir des valeurs distinctes de 3 tables.
Quand j'exécute ce code:
select DISTINCT(city) from a,b,c
J'obtiens une erreur qui indique que ma colonne "ville" est ambiguë.
J'ai aussi essayé ceci:
select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c
Avec ce code, je ne reçois rien de mes tables.
Permettez-moi de vous montrer l'exemple de ce que j'essaie de faire:
TABLE A TABLE B TABLE C
id | city id | city id | city
1 | Krakow 1 | Paris 1 | Paris
2 | Paris 2 | London 2 | Krakow
3 | Paris 3 | Oslo
4 | Rome
Et je dois obtenir un résultat comme celui-ci
RESULTS
city
----
Krakow
Paris
Rome
London
Oslo
L'ordre des villes n'est pas important pour moi, j'ai juste besoin de les avoir toutes, et il ne devrait y avoir qu'une seule représentation de chaque ville.
Une idée? Je pensais utiliser id's
dans le JOIN
mais il n'y a pas de connexion donc je ne peux pas l'utiliser.
Le mot clé UNION
renverra les enregistrements unique
dans la liste des résultats. Lorsque vous spécifiez ALL
( ( UNION ALL ) conservera des doublons sur le jeu de résultats, que l'OP ne fait pas ' je veux pas.
SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC
RÉSULTAT
╔════════╗
║ CITY ║
╠════════╣
║ Krakow ║
║ Paris ║
║ Rome ║
║ London ║
║ Oslo ║
╚════════╝
SELECT city FROM A
UNION DISTINCT
SELECT city FROM B
UNION DISTINCT
SELECT city FROM C