Accueil > Forum > > > > Problème Multi Jointures avec des Tables possedant des "Trous"
Problème Multi Jointures avec des Tables possedant des "Trous"
mardi 3 janvier 2006 à 09:59:53 |
Problème Multi Jointures avec des Tables possedant des "Trous"

thefutureisnow
|
Salut à tous et bonne année Wink
Alors je place le décors : j'ai 5 tables :
Citation:
-patient
clef primaire PaNum
-adresse
clef primaire AdNum
clef étrangère PaNum référence à patient
-visite
clef primaire ViNum
clef étrangère PaNum référence à patient
-photo
clef primaire PhNum
clef etrangère ViNum référence à visite
clef etrangère Dicode référence à diagnostic
PhPath = Nom du fichier image
-diagnostic
clef primaire DiCode
Voila pour les tables, j'aimerais donc faire une requete de sélection de toute les informations (toute les tables) concernant la Photo ayant le nom de fichier REje14M000001 ...
en toute logique j'ai essayé cette requete en faisant une jointure entre toutes les tables :
Code:
SELECT *
FROM adresse, diagnostic, patient, photo, visite
WHERE adresse.PaNum = patient.PaNum
AND patient.PaNum = visite.PaNum
AND visite.Vinum = photo.ViNum
AND diagnostic.DiCode = photo.DiCode
AND photo.PhPath like '%REje14M000001%'
Cependant celle ci ne renvoit rien ...
Alors qu'une simple jointure + un like :
Code:
SELECT *
FROM photo, visite
WHERE visite.Vinum = photo.ViNum
And photo.PhPath like '%REje14M000001%'
Fonctionne très bien en renvoyant la ligne qui m'interesse cad les information de la visite concerné par la photo ...
Le problème vient que la base de donnée à en effet des "trous" ce qui est normal dans mon projet, car je dois détecter justement les "trous" et afficher les problèmes en vus d'un delete ou d'un update par la suite ...
Donc est ce possible de créer une requete de jointure qui affiche une ligne même partiel ?
Dans mon exemple, le nom de la photo renvois bien une photo existante, se rapportant bien à une visite, cependant cette visite ne se rapporte à aucun client et donc aucune adresse, et aucun diagnostic... J'aurrais donc aimer que la requete fasse une jointure total mais n'affiche que les données existantes cad ici une ligen contenant les informations de la photo et de la visite...
Et si il y avait eu un client et une adresse j'aurrais souhaiter que ces informations apparaissent...
Bref est ce possible au point de vue SQL ?
Pourriez vous me donner un petit coup de pouce car cela fait déja 4 heures que je planche dessus
Merci à vous Smile
|
|
mardi 3 janvier 2006 à 10:13:57 |
Re : Problème Multi Jointures avec des Tables possedant des "Trous"

nhervagault
|
Salut
SELECT * FROM patient LEFT JOIN visite on patient.PaNum = visite.PaNum LEFT JOIN diagnostic on diagnostic.DiCode = photo.DiCode LEFT JOIN adresse on adresse.PaNum = patient.PaNum LEFT JOIN photo on visite.Vinum = photo.ViNum WHERE photo.PhPath like '%REje14M000001%'
Vas te donner peut etre une reponse.
Si du remplace left par Inner les trous de la jointure disparaissent. INNER JOIN photo
on visite.Vinum = photo.ViNum Que les lignes ou il y a la relation INNER JOIN photo
on visite.Vinum = photo.ViNum si pas de relation --> remplacement par des null
|
|
mardi 3 janvier 2006 à 11:23:30 |
Re : Problème Multi Jointures avec des Tables possedant des "Trous"

thefutureisnow
|
Merci pour ta réponse, mais ta requete me renvoi aucune ligne, j'ai testé d'autres requetes qui donne cependant des résultat mais loin de ceux expérés :
SELECT *
FROM patient P
INNER JOIN visite V ON P.PaNum = V.ViNum
INNER JOIN photo PH ON V.Vinum = PH.ViNum
LEFT OUTER JOIN diagnostic D ON PH.DiCode = D.DiCode
LEFT OUTER JOIN adresse A ON P.PaNum = A.PaNum
WHERE PH.PhPath LIKE '%REje14M000001%'
OR A.AdNum IS NULL
OR P.PaNum IS NULL
OR V.ViNum IS NULL
OR PH.PhNum IS NULL
OR D.DiCode IS NULL
ou encore :
SELECT *
FROM patient P
INNER JOIN visite V ON P.PaNum = V.ViNum
INNER JOIN photo PH ON V.Vinum = PH.ViNum
LEFT OUTER JOIN diagnostic D ON PH.DiCode = D.DiCode
LEFT OUTER JOIN adresse A ON P.PaNum = A.PaNum
WHERE PH.PhPath LIKE '%REje14M000001%'
OR A.PaNum IS NULL
OR PH.DiCode IS NULL
OR PH.ViNum IS NULL
OR V.PaNum IS NULL
mais rien n't fait ... :(
|
|
mardi 3 janvier 2006 à 11:30:00 |
Re : Problème Multi Jointures avec des Tables possedant des "Trous"

thefutureisnow
|
je viens de tester encore cela :
SELECT *
FROM patient P
LEFT JOIN visite V on P.PaNum = V.PaNum
LEFT JOIN diagnostic D on D.DiCode = PH.DiCode
LEFT JOIN adresse A on A.PaNum = P.PaNum
LEFT JOIN photo PH on V.Vinum = PH.ViNum
WHERE PH.PhPath like '%REje14M000001%'
OR A.AdNum IS NULL
OR P.PaNum IS NULL
OR V.ViNum IS NULL
OR PH.PhNum IS NULL
OR D.DiCode IS NULL
MySQL controle Center me dit :
"ERROR 1120: Cross dependency found in OUTER JOIN. Examine your ON conditions"
|
|
mercredi 4 janvier 2006 à 12:31:51 |
Re : Problème Multi Jointures avec des Tables possedant des "Trous"

nhervagault
|
Salut
SELECT * FROM patient P LEFT JOIN visite V on P.PaNum = V.PaNum LEFT JOIN diagnostic D on D.DiCode = PH.DiCode LEFT JOIN adresse A on A.PaNum = P.PaNum LEFT JOIN photo PH on V.Vinum = PH.ViNum WHERE PH.PhPath like '%REje14M000001%'
Ph est utilisé avant d'etre defini
SELECT *
FROM patient P
LEFT JOIN visite V on P.PaNum = V.PaNum
LEFT JOIN photo PH on V.Vinum = PH.ViNum
LEFT JOIN diagnostic D on D.DiCode = PH.DiCode
LEFT JOIN adresse A on A.PaNum = P.PaNum
WHERE PH.PhPath like '%REje14M000001%' Devrait mieux foinctionner
|
|
vendredi 6 janvier 2006 à 15:58:15 |
Re : Problème Multi Jointures avec des Tables possedant des "Trous"

thefutureisnow
|
Réponse acceptée !
Merci pour ta réponse, je l'ai fais en plusieurs requetes, bien plus simple en cas d'erreur :)
|
|
Cette discussion est classée dans : photo, tables, clef, visite, panum
Répondre à ce message
Sujets en rapport avec ce message
Nom de table !? [ par jimmy69 ]
Bonjour a tous,Je suis en train de realiser un p'tit projet en php avec sql serveur 2000 !J'ai une p'tite question a vous poser !je suis en train de c
liste des tables [ par Mouffi ]
Bonjour,Je voudrais recuperer le nom des tables d'une base SQl serveur 2000 depuis un programme vb.netmerci d'avance
Afficher les tables d'une ou plusieurs bases [ par Rouk ]
Bonjour,Je developpe en vb.net avec une connexion a une base Sql.Je souhaiterai afficher dans une ComboBox la liste de base Sql et suite a cela affich
Selection de tables [ par Rouk ]
Bonjour,je debeloppe en vb.net un datagrid alimente par une base sqlje voudrai faire une selection des tables que j'affiche dans le datagrid.SELECT
comment faire une association CIM [ par raziel62 ]
Salut,j'ai un probleme sur ma base de donnée qui gere des composants hardware, je n'arrive pas a relier deux tables (constructeur et type_composant).j
2 liens entre 2 tables [ par fstyle ]
Bonjour/soirJe suis en train de créer un système pour gérer ma comptabilité ...et je suis devant un problème !Dans mon mld, il y a 2 tables : t_compta
Sql et disparition de valeurs [ par sky_striker ]
Bonjour dans mon programme j'utilise un champ particulier dans mes tables que j'ai appellé la valeur inconnue.Cette valeur porte l'id 0 dans toute mes
Probléme de Requéte ( surement simple ) [ par ITALIA ]
Je developpe actuellement un programme en vb6 attaquant une base Access 97...et j'ai un souci avec une requête SQL.J'ai deux tables PPM2004 et PPM2005
liaison de données dans SQL Server [ par titoune76 ]
Comment faire dans SQL Server pour créer une vue selectionnant plusieurs champs de plusieurs tables (jusque la pas de pb), ces tables se situant dans
faire une insertion sur plusieures tables [ par tenrod ]
bijour!je voudrais savoir si il est possible d'effectuer un insert sur plusieures tables du genre:insert into latable1, latable2, latable3...values va
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ORACLE FORMSRE : ORACLE FORMS par csmahicham
Cliquez pour lire la suite par csmahicham
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|