Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
659 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] une requête non ordinaire ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] une requête non ordinaire ...

n°130233
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2002 à 15:31:01  profilanswer
 

J'ai une table film.
J'ai une table personne
J'ai une table poste
J'ai une table fpp qui fait le lien entre les trois tables
 
Je veux pour un film, le réalisateur et le producteur mais la requête doit retourner le tout sur la même ligne
 
Donc j'obtiens facilement le réalisateur d'un film X (jeu de mot !!!)
 

Code :
  1. select nomfilm, nompersonne
  2.   from film f, personne p, poste q, fpp l
  3. where f.idfim = l.idfilm
  4.    and p.idpersonne = l.idpersonne
  5.    and q.idposte = l.idposte
  6.    and f.nomfilm= X
  7.    and q.nomposte = 'realisateur'


 
Et idem pour le producteur du même film X.
 

Code :
  1. select nomfilm, nompersonne
  2.   from film f, personne p, poste q, fpp l
  3. where f.idfim = l.idfilm
  4.    and p.idpersonne = l.idpersonne
  5.    and q.idposte = l.idposte
  6.    and f.nomfilm= X
  7.    and q.nomposte = 'producteur'


 
Mais je voudrais faire les deux requetes en une seul !!!

Code :
  1. select nomfilm, nompersonne, nompersonne
  2. ...


 
Où le 1° nom est celui du réalisateur et le 2° celui du producteur (avec NULL si l'un des deux n'existe pas mais il faut quand même que la ligne soit éditée).
 
Merci d'avance !!!

mood
Publicité
Posté le 24-04-2002 à 15:31:01  profilanswer
 

n°130252
neobth
Posté le 24-04-2002 à 15:47:56  profilanswer
 

à mon avis, les 3 tables reliées par une seule, c pas terrible. Je crois qu'il faudrait revoir la structure de ta DB.
 
Mais en gardant ce que t'as fais, tu peux essayer avec 2 alias différents pour personne et poste. Je suis pas sur, mais sur un malentendu, ca peut p-e marcher ;)

n°130299
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2002 à 16:42:53  profilanswer
 

neobth a écrit a écrit :

à mon avis, les 3 tables reliées par une seule, c pas terrible. Je crois qu'il faudrait revoir la structure de ta DB.
 
Mais en gardant ce que t'as fais, tu peux essayer avec 2 alias différents pour personne et poste. Je suis pas sur, mais sur un malentendu, ca peut p-e marcher ;)  




 
En fait c'est pas ma DB alors je ne suis pas sur qu'elle soit comme ça mais y'a au moins les trois tables !!!
 
Euh c'est quoi un alias ?

n°130306
- Renaud -
Posté le 24-04-2002 à 16:46:23  profilanswer
 

DarkOli a écrit a écrit :

J'ai une table film.
J'ai une table personne
J'ai une table poste
J'ai une table fpp qui fait le lien entre les trois tables
 
Je veux pour un film, le réalisateur et le producteur mais la requête doit retourner le tout sur la même ligne
 
Donc j'obtiens facilement le réalisateur d'un film X (jeu de mot !!!)
 

Code :
  1. select nomfilm, nompersonne
  2.   from film f, personne p, poste q, fpp l
  3. where f.idfim = l.idfilm
  4.    and p.idpersonne = l.idpersonne
  5.    and q.idposte = l.idposte
  6.    and f.nomfilm= X
  7.    and q.nomposte = 'realisateur'


 
Et idem pour le producteur du même film X.
 

Code :
  1. select nomfilm, nompersonne
  2.   from film f, personne p, poste q, fpp l
  3. where f.idfim = l.idfilm
  4.    and p.idpersonne = l.idpersonne
  5.    and q.idposte = l.idposte
  6.    and f.nomfilm= X
  7.    and q.nomposte = 'producteur'


 
Mais je voudrais faire les deux requetes en une seul !!!

Code :
  1. select nomfilm, nompersonne, nompersonne
  2. ...


 
Où le 1° nom est celui du réalisateur et le 2° celui du producteur (avec NULL si l'un des deux n'existe pas mais il faut quand même que la ligne soit éditée).
 
Merci d'avance !!!  




 
As tu le droit au requetes imbriquees?
 
Renaud

n°130327
neobth
Posté le 24-04-2002 à 17:13:05  profilanswer
 

un alias, c un nom temporaire que tu donnes à un objet (ici une table) à l'intérieur d'une requête.
 
Exemple : FROM film f, personne p
f et p sont des alias de film et personne.

n°130414
fabd
Posté le 24-04-2002 à 20:04:30  profilanswer
 

BOn, vite fait je répond, mais c ptre pas ce ke tu attend
 
Tu fais ton 1er select UNION ton 2eme select. t'a tout sur la meme ligne, mais je garantie pas le resultat d:

n°130415
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2002 à 20:05:37  profilanswer
 

neobth a écrit a écrit :

un alias, c un nom temporaire que tu donnes à un objet (ici une table) à l'intérieur d'une requête.
 
Exemple : FROM film f, personne p
f et p sont des alias de film et personne.  




 
Ok, donc je les utilisais sans  savoir ce que c'etait (sans connaître le nom).


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°130416
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2002 à 20:06:26  profilanswer
 

- Renaud - a écrit a écrit :

 
As tu le droit au requetes imbriquees?
Renaud  




 
Surement, donne ta solution quand même je verrais bien si ça marche !!!  :D


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°130462
- Renaud -
Posté le 24-04-2002 à 21:59:31  profilanswer
 

DarkOli a écrit a écrit :

 
 
Surement, donne ta solution quand même je verrais bien si ça marche !!!  :D  




 
en fait neobth a raison, il faut utiliser les alias,  
 
le debut devrait etre ca:
 

Code :
  1. select nomfilm as nom, p1.nompersonne as realisateur, p2.nompersonne as producteur
  2. from film f, personne p1, personne p1, poste q1, poste q2, fpp l


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] une requête non ordinaire ...

 

Sujets relatifs
[SQL] Date du jour - un jourCarac. Special + SQL + ASP
[oracle SQL] comment recuperer la taille d'un champ ds une table ?[SQL] vues
SQL en chaine au lieu e l'editeur de code sqlSQL : format de date : between date and date
SQL : Requete avec des "and" des "or", et ca marche poProblème de requête SQL avec condition "Where" en vb...
Plus de sujets relatifs à : [SQL] une requête non ordinaire ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR