Bonjour,
j'ai 3 tables qui se présentent ainsi :
En gros, une application peut être installée dans une salle via la table applis_salles et une application est liée à un système d'exploitation de ma table os.applications { ID_application, Nom_application, Editeur_application, Version_application, ID_os, Commune ... }
applis_salles {ID_appli_salle, ID_salle, ID_application, Etat_application... }
os { ID_os, Nom_os }
Je veux afficher les applications qui ne sont pas installées dans une salle d' ID $ID_salle. Pour cela j'utilise la requête :
Je voudrais coller au résultat que me renvoie cette requête le nom de l'os qui lui est associé en sachant que applications.ID_os peut être NULL et que je veux quand même afficher cette ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT A.* FROM applications A WHERE NOT EXISTS ( SELECT B.ID_application FROM applis_salles B WHERE B.ID_salle = $ID_salle AND A.ID_application = B.ID_application ) AND A.commune = 0
Cette requête m'affiche uniquement les applications possédant un ID_os :
J'ai essayé vainement en ajoutant des OR dans la condition WHERE mais j'obtiens des doublons ou autres résultats farfelus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT A.*, C.* FROM applications A, os C WHERE NOT EXISTS ( SELECT B.ID_application FROM applis_salles B WHERE B.ID_salle = $ID_salle AND A.ID_application = B.ID_application ) AND A.commune = 0 AND C.ID_os = A.ID_os
Ce que je veux obtenir est-il possible ? Si oui comment ?
Merci d'avance.
Partager