Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 16h49   #1
Nouveau Membre du Club
 
Avatar de logiciel_const
 
Inscription : octobre 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 167
Points : 31
Points : 31
Par défaut jointure extérieurement à une sous intérrogation

Bonjour,
voila mon probleme: j'ai une requete sql dont sa jointure "Left outer join" a comme condition une sous intérrogation:
exemple:
Code :
1
2
3
 
SELECT * FROM Table1
LEFT OUTER JOIN  Table2 ON Table2.ID=( SELECT.....FROM Table3)
est ce que c'est possible en sql,ou dois-je reformer toute la requete,par exemple la diviser en deux.
Merci.
logiciel_const est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 16h52   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
À mon avis, cette manière de faire la condition de jointure est surtout contre-performante !

Peut-on avoir, conformément aux règles de ce forum, la requête exacte, son but, la structure des tables impliquées ainsi qu'un petit jeu de données et le résultat souhaité ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 16h54   #3
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 081
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 081
Points : 1 875
Points : 1 875
Bonjour,
A première vue je dirai que c'est possible en SQL, mais en remplaçant l'égalité par un IN, surtout s'il n'y a pas de critères sur Table3.

Par contre je pense qu'il y a une meilleure façon d'écrire cette requête, mais mon niveau n'est pas suffisant

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 17h11   #4
Nouveau Membre du Club
 
Avatar de logiciel_const
 
Inscription : octobre 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 167
Points : 31
Points : 31
re,
merci tatayo , je crois que ça marche , il fallait juste remplacer = par in,merci
@ CinePhil, pardon mais le code à 26 lignes.
merci
logiciel_const est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 17h26   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par logiciel_const Voir le message
@ CinePhil, pardon mais le code à 26 lignes.
Et alors !

Ta requête reste quand même mal écrite et probablement contre-performante !

Normalement la condition de jointure porte sur des colonnes des deux tables entrant en jeu dans la jointure :
Code :
1
2
FROM a
JOIN b ON b.une_colonne = a.une_colonne
Alors aller chercher un ID qui doit être égal à une sélection sur une troisième table, c'est pour le moins étrange, voire incohérent !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h54.


 
 
 
 
Partenaires

Hébergement Web