Jointure tous duos

Résolu/Fermé
Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019 - Modifié le 5 nov. 2019 à 23:04
Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019 - 8 nov. 2019 à 10:11
Bonjour,

Je dispose de 3 tables sur ma base mysql

apps:
- id
- nom
- ...

users :
- id
- nom
- ...

autorisations :
- id
- id_app
- id_user

Comme vous l'avez sûrement deviné, une liste les utilisateurs, une liste les applications disponibles, une autre liste les autorisations d'accès (s'il existe un duo id_app/id_user, l'utilisateur a l'autorisation, sinon il ne l'a pas).

Mon but final est de créer une vue qui, pour chaque duo application/utilisateur, calcule un champ via un exists sur la table autorisations.

Malheureusement, je n'arrive pas à trouver une requête qui permet de créer cette vue id_app, id_user listant tous les duos possibles, sauriez-vous comment faire svp ? (créer la vue list_app_user ci-dessous):

SELECT
lap.id_user,
lap.id_app,
IF(EXISTS(SELECT * FROM autorisations a WHERE a.id_app = lap.id_app AND a.id_user = lap.id_user), 1, 0) as autor 
FROM list_app_user lap


J'utilise MySQL v5.6.

Merci d'avance !

Configuration: Windows / Chrome 77.0.3865.120

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
5 nov. 2019 à 23:26
Bonjour
Intéresse toi au jointures
1
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
6 nov. 2019 à 09:03
SELECT AUT.id_user
      ,AUT.id_app
      ,U.*
      ,A.*
FROM autorisations AUT
LEFT JOIN apps A ON A.id = AUT.id_app
LEFT JOIN users U ON U.id = AUT.id_user
0
Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019
7 nov. 2019 à 19:28
Bonjour Jordane,

Merci pour ta réponse :)

Néanmoins, cette requête n'affiche que les entrées pour lesquelles il y a un duo id_app/id_user dans la table AUT... mais je vais continuer de creuser dans cette direction :)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019
7 nov. 2019 à 20:11
On va faire plus simple...
Tu veux obtenir quoi exactement ?
Un exemple de données dans chaque table et ke resultat souhaite pourrait aider.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019
7 nov. 2019 à 22:37

Néanmoins, cette requête n'affiche que les entrées pour lesquelles il y a un duo id_app/id_user dans la table AUT

et en même temps.. c'est ce que tu nous as demandé..

Mon but final est de créer une vue qui, pour chaque duo application/utilisateur, calcule un champ via un exists sur la table autorisations.

A moins que j'ai mal compris ?
0
Switchd4 Messages postés 31 Date d'inscription samedi 10 novembre 2012 Statut Membre Dernière intervention 8 novembre 2019
7 nov. 2019 à 23:53
En effet je me suis mal exprimé...

Je cherche à réunir en une seule et même query l'ensemble des duos possibles id_app/id_user, pour ensuiter tester l'existence de chacun des duos dans la table aut, et retourner TRUE ou FALSE dans la query si le duo est trouvé.

Un exemple pour mieux comprendre :


Merci pour ton aide :)
0