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

PHP & Base de données Discussion :

unir 2 requettes [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut unir 2 requettes
    Bonjour,

    J'ai deux requettes: l'une me donne se resultat la:

    Requette 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT `joueurs_id`,`num_appariement` 
    FROM `inscription` 
    where `num_appariement` <=2
    joueur_id____num_appariement
    1__________1
    8__________2

    et l'autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT `joueurs_id`,`num_appariement` 
    FROM `inscription` 
    where `num_appariement` >2
    joueur_id____num_appariement
    7__________3
    10_________4


    Je souhaite unir ces 2 requettes sous la forme:

    joueur_id____num_appariement____joueur_id____num_appariement
    1__________1__________________7__________3
    8__________2__________________10_________4


    Je vous en supplie HELP

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par jpkerloch Voir le message
    Je souhaite unir ces 2 requettes sous la forme:

    joueur_id____num_appariement____joueur_id____num_appariement
    1__________1__________________7__________3
    8__________2__________________10_________4

    C'est à dire ? Par tableau html ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    en fait avoir ca avec une requete SQL

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    tes 2 requetes selectionnent l'ensemble de tes num_appariement donc pourquoi vouloir faire 2 requetes ?

    Fais en une seule en supprimant le where non ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    je veux bien mais il faut que je trouve un solution pour obtenir ce resultat sous cette forme la avec une rq sql

  6. #6
    Membre confirmé Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Par défaut
    pourquoi tu compte faire quoi des données après ?

    peut-être ça ... j'ai pas pus essayer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select 
       i1.joueur_id, 
       i1.num_appariement,
       i2.joueur_id, 
       i2.num_appariement
    from inscription as i1
    inner join inscription as i2
    where i1.num_appariement <= 2
    AND i2.num_appariement > 2

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut requete qui marche pas
    Bonjour a vous,

    voila j'ai un soucis. j'ai deux tables et je voudrais obtenir qu'un seul tableau
    voici la premiere table:

    Code autre : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE IF NOT EXISTS `joueur_1` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(10) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

    Code autre : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE IF NOT EXISTS `joueur_2` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(10) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


    et moi ce que je voudrais obtenir c'est un tableau sous la forme:

    joueur1_____point1____joueur2____point2 ___ronde__tournois
    .
    .
    .
    et la liste de ce que je demande.

    j'ai fait un requete mais elle ne ne fonctionne pas(resultat pas correct). Merci de m'aider.

    Voici la requete:

    Code autre : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT joueur_1.joueur_id, joueur_1.point, joueur_2.joueur_id, joueur_2.point
    FROM joueur_1, joueur_2
    WHERE joueur_1.tournois_id = joueur_2.tournois_id
    AND joueur_1.ronde = joueur_2.ronde
    AND joueur_1.tournois_id =1
    AND joueur_1.ronde =1


    Cordialement

  8. #8
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Je pense qu'on va reprendre la même discussion que sur ton précédent fil de discussions.
    Que veux-tu réellement faire ? Donnes nous un exemple de tes données en entrée et du résultat que tu attends en sortie, parce qu'on peut imaginer n'importe quelle jointure entre tes deux tables là ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    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
    CREATE TABLE IF NOT EXISTS `joueur_1` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(10) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --
    -- Contenu de la table `joueur_1`
    --
     
    INSERT INTO `joueur_1` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`) VALUES
    (1, 1, '1', 'Blanc', '1', 1, 1, 1),
    (2, 1, '5', 'Blanc', '0', 1, 2, 2),
    (3, 1, '8', 'Blanc', '0.5', 1, 3, 3),
    (4, 1, '2', 'Blanc', '0', 1, 4, 4),
    (5, 1, '4', 'Blanc', '1', 1, 5, 5);
    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
    CREATE TABLE IF NOT EXISTS `joueur_2` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(11) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --
    -- Contenu de la table `joueur_2`
    --
     
    INSERT INTO `joueur_2` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`) VALUES
    (1, 1, '9', 'Noir', '0', 1, 6, 1),
    (2, 1, '3', 'Noir', '1', 1, 7, 2),
    (3, 1, '7', 'Noir', '0.5', 1, 8, 3),
    (4, 1, '10', 'Noir', '1', 1, 9, 4),
    (5, 1, '6', 'Noir', '0', 1, 10, 5);
    et en fait ce que je voudrais c'est une requete sql qui me permet d'obtenir

    joueur1_____point1____joueur2____point2 ___ronde__tournois

    1__________1________9_________0________1_____1
    5__________0________3_________1________1_____1
    8__________0.5______7_________0.5_______1_____1
    2__________0________10________0________1_____1
    4__________1________6_________0________1_____1

    Merci de votre aide

  10. #10
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Etant donné le peu de détails, je spécule sur ce qui doit être fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
    j1.joueur_id AS joueur1,
    j1.point AS point1,
    j2.joueur_id AS joueur2,
    j2.point AS point2,
    j1.ronde AS ronde,
    j1.tournois_id AS tournois
    FROM joueur_1 AS j1
    JOIN joueur_2 AS j2 ON j2.ronde = j1.ronde AND j2.tournois_id = j1.tournois_id AND j2.table = j1.table
    PS : la spéculation porte sur la façon d'associer un joueur1 à un joueur2 ...
    PPS : je ne vois pas l'intérêt d'avoir deux tables séparées pour stocker des informations ayant la même structure ...

  11. #11
    Membre confirmé Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Par défaut
    c'est pas croyable ...

    normalement tu devrais avoir une tabe Joueurs et une table rencontres comme ça tu peux faire toutes les opérations que tu veux facilement.

    Code SQL : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    CREATE TABLE IF NOT EXISTS `joueurs` (
      `id_joueur` int(10) NOT NULL AUTO_INCREMENT,
      `appariement` int(10) DEFAULT NULL,
      `pseudo` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id_joueur`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
     
    INSERT INTO `joueurs` (`appariement`, `pseudo`) VALUES
    (1, '1'),
    (2, '5'),
    (3, '8'),
    (4, '2'),
    (5, '4'),
    (1, '9'),
    (2, '3'),
    (3, '7'),
    (4, '10'),
    (5, '6');
     
    CREATE TABLE IF NOT EXISTS `rencontres` (
      `id_rencontre` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `id_tournois` int(10) DEFAULT NULL,
      `id_joueur_noir` int(10) DEFAULT NULL,
      `id_joueur_blanc` int(10) DEFAULT NULL,
      `points_noir` varchar(10) DEFAULT NULL,
      `points_blanc` varchar(10) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      PRIMARY KEY (`id_rencontre`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
     
    INSERT INTO `rencontres` 
    (`ronde`, `id_tournois`, `id_joueur_noir`, `id_joueur_blanc`, `points_noir`, `points_blanc`, `table`) 
    VALUES
    (1, 1, 1, 6,  '1',   '0',   1),
    (1, 1, 2, 7,  '0',   '1',   2),
    (1, 1, 3, 8,  '0.5', '0.5', 3),
    (1, 1, 4, 9,  '0',   '0',   4),
    (1, 1, 5, 10, '1',   '0',   5);

    après tu fait cette requête:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT j1.pseudo,
           points_noir,
           j2.pseudo,
           points_blanc,
           ronde,
           id_tournois
    FROM rencontres
    INNER JOIN joueurs as j1
    ON j1.id_joueur = id_joueur_noir
    INNER JOIN joueurs as j2
    ON j2.id_joueur = id_joueur_blanc

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

Discussions similaires

  1. requette where date="moins de 2 jours"
    Par nmerydem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/05/2004, 16h58
  2. rave et requette sql
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/04/2004, 16h34
  3. union de requette
    Par hunter dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/03/2004, 10h33
  4. requette sql compliqué sous delphi
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 16h33
  5. Requette de joiture sql avec au moin 3 tables
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/03/2004, 08h10

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