IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[all]


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [all]
    bonjour,
    je viens de chercher sur le net mais j'ai pas trouve ce que je voulais.
    Je veux pouvoir avoir ceci transformer en sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retourner qqchose si [u]tous les groupe[/u] de Y sont dans X sinon rien
    sachant que j'ai une table qui contient les groupe et les identifiant utilisateur.

    merci
    capiste avant tout

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Janvier 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Janvier 2003
    Messages : 124
    Points : 103
    Points
    103
    Par défaut
    peux tu être plus précis.
    Tables? ou est X et Y?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    tables :

    group(user_id,group_id)

    user_id group_id
    X 1
    X 2
    X 3
    X 4
    X 5
    X 6
    Y 4
    Y 5
    Y 6

    et je veux pour que ca amrche que tous les groupe de Y soient dans X et si c'est bon ca me retourne qque chose (*)

    merci
    capiste avant tout

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 837
    Points : 52 927
    Points
    52 927
    Billets dans le blog
    5
    Par défaut
    Petit rappel :
    http://www.developpez.net/forums/vie...cd8167285e34ac :
    NOTE IMPORTANTE :

    1) Dans la mesure du possible, Veuillez préciser le SGBDR sur lequel vous travaillez. Si hors contexte, mettez "SQL 2" ou "SQL 3" suivant le niveau de norme auquel vous voulez adhérer.

    2) Indentez vos requêtes en séparant les clause SELECT / FROM / WHERE cela les rend plus lisible pour vous aider.
    Exemple :
    Code:

    SELECT MaColonne
    FROM MaTable MT
    JOIN MonAutreTable MAT
    ON MT.COl1 = LMAT.Col2
    WHERE Col3 = 46
    AND (Col4 BETWEEN 1 AND 5) OR COL4 = 32


    3) Donnez les ordres SQL de création de vos tables (CREATE TABLE) ainsi que les INSERT d'un jeu de données basique afin que tout un chacun puisse reproduire ce que vous voulez faire sur son SGBDR afin de mieux vous aider.
    Exemple :
    Code:

    CREATE TABLE MaTable
    (Col1 VARCHAR(128),
    Col2 INTEGER,
    Col3 DATE,
    Col4 CHAR(32),
    CONSTRAINT PK_MaTable PRIMARY KEY (COL1, COL2))

    INSERT INTO MaTable (COL1, COL2, COL3)
    VALUES ('Un mot', 32, CURRENT_TIMESTAMP)
    INSERT INTO MaTable (COL1, COL2, COL3)
    VALUES ('Deux maux', 0, NULL)


    4) présentez le résultat que vous voulez voir apparaître sous la forme d'une table
    Exemple :
    Code:

    -- Le résultat attendu :
    NOM VILLE NOMBRE
    ------ ---------- ------
    MARTIN PARIS 2
    DUPOND STRASBOURG 3
    ...


    POURQUOI ?

    Cela permet à ceux qui tentent de vous aider de reproduire axactement les condition de votre requete avec votre jeu d'essais afin de vous aider le plus possible. C'est aussi une marque de politesse.

    Si vous ne le saviez pas, sachez que tout bon SGBDR permet de restituter le script de création de toutes les tables de la base ! Vous n'avez donc aucune excuse de ne pas le faire...

    MERCI

    De nombreuses manière d'y parvenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    CREATE TABLE T_USERGROUP_UGP
    (user_id CHAR,
     group_id int)
     
     
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 1)
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 2)
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 3)
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 4)
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 5)
    INSERT INTO T_USERGROUP_UGP VALUES ('X', 6)
    INSERT INTO T_USERGROUP_UGP VALUES ('Y', 4)
    INSERT INTO T_USERGROUP_UGP VALUES ('Y', 5)
    INSERT INTO T_USERGROUP_UGP VALUES ('Y', 6)
     
    SELECT 1
    FROM   T_USERGROUP_UGP T1
           JOIN T_USERGROUP_UGP T2
                ON T1.group_id = T2.group_id
    WHERE  T1.user_id = 'Y'
    HAVING Count(DISTINCT T1.group_id) = (SELECT COUNT(DISTINCT group_id) 
                                          FROM   T_USERGROUP_UGP 
                                          WHERE  user_id = 'Y')
    On peut aussi appliquer la division relationnelle sur cette table en considérant les deux sous ensembles formés par toutes les valeurs de X et toutes les valeurs de Y

    A lire sur le sujet :
    http://sqlpro.developpez.com/DivRel/SQL_DIVR.html

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    ben c bon ca merche mais d'une autre facon, je l'ai fait avec des count(*)

    merci pour tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select * 
    from
    (
    select count(*) nb from (
    select group_id from turbine_user_group_role UGR, turbine_user U where UGR.user_id = U.user_id and U.login_name = 'gaelcalvar' and group_id<>1 group by group_id
    intersect
    select group_id from turbine_user_group_role where user_id = 33 and group_id<>1 group by group_id )
    ) inter , 
    ( select count(group_id) B from turbine_user_group_role where user_id = 33 and group_id<>1 group by group_id) D
    where inter.nb = D.B
    capiste avant tout

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 837
    Points : 52 927
    Points
    52 927
    Billets dans le blog
    5
    Par défaut
    Pense à mettre le tag résolu !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Grant all sur toutes les bases sauf la base mysql
    Par titoff002 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/09/2005, 22h18
  2. [XSD] Complexe de type all mais avec maxoccur
    Par Je@nb dans le forum Valider
    Réponses: 3
    Dernier message: 06/02/2005, 19h18
  3. SMTP - "All MX tried unsuccessfully"
    Par Lux interior dans le forum XMLRAD
    Réponses: 3
    Dernier message: 26/01/2005, 12h24
  4. Réponses: 2
    Dernier message: 07/01/2005, 20h40
  5. union all couteux ?
    Par Maitre B dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 16/11/2004, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo