Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2011, 08h51   #1
Membre du Club
 
Inscription : mars 2009
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2009
Messages : 87
Points : 47
Points : 47
Par défaut Requête pour récupérer valeur présente dans deux tables.

Bonjour,
j'ai deux tables:
Code :
1
2
3
4
5
6
7
8
9
 
CREATE TABLE IF NOT EXISTS `categorie_tarif` (
  `categorie_tarif_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `categorie_tarif_nom` varchar(50) NOT NULL,
  `categorie_tarif_fichier` varchar(150) DEFAULT NULL,
  `categorie_tarif_par_defaut` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (`categorie_tarif_id`),
  UNIQUE KEY `un_categorie_tarif_nom` (`categorie_tarif_nom`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;
et
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
CREATE TABLE IF NOT EXISTS `galerie` (
  `galerie_id` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `categorie_tarif_id` smallint(5) UNSIGNED DEFAULT NULL,
  `galerie_nom` varchar(50) NOT NULL,
  `galerie_statut` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `galerie_active` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `galerie_demo` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `galerie_date_creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `galerie_passwd` char(40) DEFAULT NULL,
  PRIMARY KEY (`galerie_id`),
  UNIQUE KEY `un_nom_galerie` (`galerie_nom`),
  UNIQUE KEY `un_mdp_galerie` (`galerie_passwd`),
  KEY `categorie_tarif_id` (`categorie_tarif_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Je récupère la liste des categorie_tarif_id comme ceci:
Code :
SELECT * FROM CATEGORIE_TARIF ORDER BY categorie_tarif_id DESC
Je voudrais modifier cette requête pour pouvoir y ajouter "galerie_id" là où "categorie_tarif_id" est présent dans la table GALERIES.
J'ai bien tenter avec les jointures mais je butte un peu.

Auriez vous une idée SVP ?

Merci d'avance pour vos réponses.
Riko63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 16h19   #2
Membre confirmé
 
Homme Lionel Chaumeau
Développeur Web
Inscription : octobre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Lionel Chaumeau
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2011
Messages : 75
Points : 264
Points : 264
Bonjour,
si tu essayes
Code :
1
2
3
4
5
SELECT categorie_tarif_id, categorie_tarif_nom, categorie_tarif_fichier, categorie_tarif_par_defaut, galerie_id 
FROM CATEGORIE_TARIF AS ct
JOIN  galerie AS g
      ON g.categorie_tarif_id = ct.categorie_tarif_id
ORDER BY categorie_tarif_id DESC
tu as ce que tu veux ?
__________________
My laptop, my bike and my double-sticks...
kalimukti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 19h41   #3
Membre du Club
 
Inscription : mars 2009
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2009
Messages : 87
Points : 47
Points : 47
Merci de ta réponse mais ce n'est pas ça que je recherchais.

imaginons que j'ai:

Table galerie:
Code :
1
2
3
4
5
6
 
    galerie_id   |  galerie nom  |  categorie_tarif_id
          1       |      test     |      NULL
          2       |      test 1   |      1
          3       |      test 2   |      3
          4       |      test 3   |      1
Puis dans la table categorie tarifs:
Code :
1
2
3
4
5
 
    categorie_tarif_id   |  categorie_tarif_ nom
          1              |      cat 1             
          2              |      cat 2  
          3              |      cat 3
je voudrais obtenir:
Code :
1
2
3
4
5
6
 
    categorie_tarif_id  |  galerie nom  |  galerie_id 
          1            |      cat 1     |      2
          1            |      cat 1     |      4
          2            |      cat 2     |      NULL
          3            |      cat 3     |      3
Plus je regarde et plus je pense qu'il me faudra deux requêtes.
Riko63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 20h59   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Il faut une jointure externe :
Code :
1
2
3
4
SELECT ct.categorie_tarif_id, ct.categorie_tarif_nom, g.galerie_id 
  FROM CATEGORIE_TARIF AS ct
  LEFT JOIN galerie AS g ON g.categorie_tarif_id = ct.categorie_tarif_id
 ORDER BY categorie_tarif_id DESC
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 08h41   #5
Membre du Club
 
Inscription : mars 2009
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2009
Messages : 87
Points : 47
Points : 47
Ah ben oui ça fonctionne comme ça,
j'avais bien lu le cours sur les jointures mais je ne sais pas où j'avais fait l'erreur.
Je vais relire ça plus attentivement.

Merci pour tout.....
Riko63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h46.


 
 
 
 
Partenaires

Hébergement Web