OVH Cloud OVH Cloud

Clause From d'une requête sql

2 réponses
Avatar
Bruno PROSPERO
Bonjour,

Voici la clause from suivante :

FROM habitant, habitant, adresse

Je me retrouve dans ma clause From avec deux fois la même table, par exemple
lorsque dans la même table, j'ai le père avec une jointure sur les enfants.

Pour que ce type de requêtes fonctionne, que doit-on faire au niveau de
l'analyse. Il y a-t-il une manière d'écrire la requête sql pour que cela
fonctionne.

Je précise que je suis relié par l'accès natif oracle à des tables Oracle
distantes et que la requête est une requête SQL directe.



Merci pour votre aide.

Bruno

2 réponses

Avatar
informations
Au niveau de la requête, il faut préfixer les noms de colonnes avec
les noms des tables, en utilisant des alias de tables si une table
apparait plusieurs fois :
Exemple :

select habitant.nom, habitant2.prénom
from habitant, habitant habitant2
where habitant2.nom = habitant.nom;


Au niveau de l'analyse, il est également possible de gérer des tables
alias d'autres tables mais je ne sais plus trop comment (cf l'aide)

Bon courage,

AntiSpam : Pour me répondre, postez un message dans ce forum pour me
demander une adresse email provisoire.



"Bruno PROSPERO" wrote in message news:<ceee0h$iph$...
Bonjour,

Voici la clause from suivante :

FROM habitant, habitant, adresse

Je me retrouve dans ma clause From avec deux fois la même table, par exemple
lorsque dans la même table, j'ai le père avec une jointure sur les enfants.

Pour que ce type de requêtes fonctionne, que doit-on faire au niveau de
l'analyse. Il y a-t-il une manière d'écrire la requête sql pour que cela
fonctionne.

Je précise que je suis relié par l'accès natif oracle à des tables Oracle
distantes et que la requête est une requête SQL directe.



Merci pour votre aide.

Bruno


Avatar
Roumegou
Il se trouve que Bruno PROSPERO a formulé :
Bonjour,

Voici la clause from suivante :

FROM habitant, habitant, adresse

Je me retrouve dans ma clause From avec deux fois la même table, par exemple
lorsque dans la même table, j'ai le père avec une jointure sur les enfants.

Pour que ce type de requêtes fonctionne, que doit-on faire au niveau de
l'analyse. Il y a-t-il une manière d'écrire la requête sql pour que cela
fonctionne.


En sql, tu vas utiliser les alias.
En sql Oracle tu pourrais avoir un truc du genre
SELECT PAPA.NOM, PAPA.PRENOM,MAMAN.NOM, MAMAN.PRENOM,MOI.NOM,
MOI.PRENOM
FROM HABITANT PAPA,HABITANT MAMAN,HABITANT MOI
WHERE MOI.ID_PERE=PERE.ID (+)
AND MOI.ID_MERE=MERE.ID(+)

Voilà précisons que j'ai laissé tombé la bonne pour l'exemple,
que les (+) sont une jointure gauche au cas où je n'ai plus papa ou
maman.

Je précise que je suis relié par l'accès natif oracle à des tables Oracle
distantes et que la requête est une requête SQL directe.




c'est ce que l'on appelle une requete qui fait papa maman ;-)



Merci pour votre aide.


Question analyse HF Windev, si tu veux utiliser les ordre H, je ne sais
pas trop l'incidence.
Au pire tu peux peut être créer des vues que tu verras ensuite comme
des entités à part.

Bruno



--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)