[sql] Requête "croisée"

WRInaute accro
Bonjour,

Je cherche comment écrire la requête pour identifier les enregistrements :

- qui trouvent dans la table Sites
- dont le champ Pays est un pays d'un continent donné

Sachant que dans la table Pays est faite la correspondance entre :

- le nom du Pays
- le Continent où il se trouve

Je ne sais pas si je suis clair... Si quelqu'un peut me dire comment faire ça, merci d'avance,

Michaël
 
WRInaute occasionnel
j'imagine que tes tables sont comme ça :

sites :

id_site (clé primaire)
id_pays (clé étrangère)
nom_site
....
....

pays :
id_pays (clé primaire)
id_continent (clé étrangère)
nom_pays
population
...

continent
id_continent (clé primaire)
nom_continent



dans ce cas là, tu peux faire
select id_site,nom_site
from sites s, pays p
where s.id_pays=p.id_pays
and nom_pays='lettonie'

sinon, si tu considères qu'un pays peut-être sur plusieurs continents (russie, turquie, france...)

sites :

id_site (clé primaire)
id_pays (clé étrangère)
nom_site
....
....

pays :
id_pays (clé primaire)
nom_pays
population
...

continent_pays
id_pays
id_continent

continent
id_continent (clé primaire)
nom_continent



dans ce cas là, tu peux faire
(mais j'en suis moins sûr)
select id_site,nom_site
from sites s, pays p, continent c, continent_pays cp
where s.id_pays=p.id_pays
and nom_pays='russie'
and p.id_pays=cp.id_pays
and cp.id_continent=c.id_continent
and nom_continent='asie'
 
Discussions similaires
Haut