Requête sql : besoin d'aide

OTP

WRInaute accro
Bonsoir,

J'ai une table 'data_parc' qui contient entre autres les champs 'parc', 'developpeur' et 'pays'.
Exemple : Parc1 Developpeur1 France

J'ai une table 'data_pays' qui contient entre autre 'nom_pays' et 'continent_du_pays'.
Exemple : France Europe

Je veux la liste des 'developpeur' qui sont dans la base 'data_parc' pour seulement les cas où le 'pays' est dans le continent 'Europe'.

Comment puis-je écrire ça ? J'ai regardé les JOIN et compagnie et je nage...

Merci d'avance,

Michaël
 

YoyoS

WRInaute accro
Code:
select distinct developpeur 
from data_parc 
where exists
 (select * 
 from data_pays 
 where data_parc.pays = data_pays.pays 
 and data_pays.continent = 'Europe');

J'ai pas vérifié mais ça marcherait ? :)
 

YoyoS

WRInaute accro
Comment ça sur une seule ligne ?

Oui tu veux dire faire une seule ligne avec la requête ? Mais tu es pas obligé, tu peux faire des passages à la ligne dans tes requêtes ! C'est beaucoup plus clair après
 

YoyoS

WRInaute accro
Oui c'est une seule, essaie la dans phmmyadmin et dis l'erreur que tu as si il y en a une.

Sinon, tu peux exporter la structure de tes tables avec quelques données et donner le script qui en ressort, comme ça je pourrai construire les table directement pour tester et avoir le bon résultat ^^
 

YoyoS

WRInaute accro
Ho première fois que je fais pas de faute du premier coup alors :D Merci à toi de t'occuper de mon entrainement pour pas perdre la main :p
 

OTP

WRInaute accro
YoyoS a dit:
Merci à toi de t'occuper de mon entrainement pour pas perdre la main :p

Ok, je ne vais pas t'oublier !

PS : j'ai juste ajouté des ( ) mais je ne sais pas si c'est indispensable.
 

YoyoS

WRInaute accro
En fait oui, c'est possible que mysql râle pour des parenthèses :D mais dans ce cas la je crois pas que ça pose problème sans parenthèses.
 

Bool

WRInaute passionné
Hello,

sans vouloir être casse pied, pourquoi ne pas faire une simple jointure ?

Code:
select a.developpeur 
from data_pays y
join data_parc a on y.pays = a.pays
where y.continent = 'Europe'

Et à priori il n'y a même pas besoin du distinct.
 

Aye-Aye

WRInaute passionné
Oui, je pencherais pour un truc tout bête du style :
Code:
SELECT distinct developpeur
FROM data_parc, data_pays
WHERE  data_parc.pays = data_pays.nom_pays
AND data_pays.continent_du_pays='Europe';
 

YoyoS

WRInaute accro
Oui c'est vrai, mais quand on ne me spécifie pas que ce sont des clés primaires, je ne prends pas de risques et j'utilise un exists, qui fonctionne tout le temps. Puis j'avais envie, j'ai pas le droit ? :D

La jointure est faisable aussi évidemment, mais il n'y a pas une solution mieux que l'autre que je sache. Par contre le distinct, à mon avis il le faut. "Sa clé primaire" doit être une clé composée du parc et du développeur.
 

Aye-Aye

WRInaute passionné
YoyoS a dit:
Oui c'est vrai, mais quand on ne me spécifie pas que ce sont des clés primaires, je ne prends pas de risques et j'utilise un exists, qui fonctionne tout le temps. Puis j'avais envie, j'ai pas le droit ? :D
Hihi, tu ne cours pas beaucoup de risque avec cette jointure, mais tu as le droit de te faire plaisir. :)

YoyoS a dit:
Par contre le distinct, à mon avis il le faut. "Sa clé primaire" doit être une clé composée du parc et du développeur.
J'ai un peu de mal à suivre ta logique ici... :roll:
 

YoyoS

WRInaute accro
OTP a dit:

J'ai une table 'data_parc' qui contient entre autres les champs 'parc', 'developpeur' et 'pays'.
Exemple : Parc1 Developpeur1 France

- Peut-être qu'il y a plusieurs parcs développés par la même personne ?
- Peut-être qu'il y a plusieurs developpeurs sur le même parc ?

Bref :p
 

Aye-Aye

WRInaute passionné
YoyoS a dit:
OTP a dit:

J'ai une table 'data_parc' qui contient entre autres les champs 'parc', 'developpeur' et 'pays'.
Exemple : Parc1 Developpeur1 France

1)- Peut-être qu'il y a plusieurs parcs développés par la même personne ?
2)- Peut-être qu'il y a plusieurs developpeurs sur le même parc ?

Bref :p
Ta 1ère hypothèse justifie l'emploi d'un distinct mais ne correspond pas à un cas de concaténation des champs 'parc' et 'développeur' pour former la clé primaire de data_parc,
Ta seconde hypothèse, si elle se justifiait, me laisserait penser que la base de données doit être repensée.
 

OTP

WRInaute accro
YoyoS a dit:
- Peut-être qu'il y a plusieurs parcs développés par la même personne ?
Oui, en effet.

YoyoS a dit:
- Peut-être qu'il y a plusieurs developpeurs sur le même parc ?
Non.

[mode troll]
Peu importe la requête pour moi tant qu'à la fin j'ai ce que je veux !
[/mode]

Merci à tous !
 

Discussions similaires

Haut