Jointure tous duos

Résolu
Switchd4 Messages postés 38 Statut Membre -  
Switchd4 Messages postés 38 Statut Membre -
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

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour
    Intéresse toi au jointures
    1
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
    2. Switchd4 Messages postés 38 Statut Membre
       
      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
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Switchd4 Messages postés 38 Statut Membre
       
      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
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Switchd4 Messages postés 38 Statut Membre
       

      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
    5. Switchd4 Messages postés 38 Statut Membre
       
      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