Page 1 sur 1

Requete avec 2 id different mais meme table

Posté : 05 nov. 2008, 15:08
par guigui69
Bonjour à tous,


Je dispose d'une table client:

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.9.1.1-Debian-2ubuntu1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Mercredi 05 Novembre 2008 à 14:03 -- Version du serveur: 5.0.38 -- Version de PHP: 5.2.1 -- -- Base de données: `qualite` -- -- -------------------------------------------------------- -- -- Structure de la table `client` -- CREATE TABLE `client` ( `id_client` int(11) NOT NULL auto_increment, `code_client` int(11) NOT NULL, `nom_client` varchar(32) NOT NULL, `adresse_client` varchar(32) NOT NULL, `cb_client` int(11) NOT NULL, `ville_client` varchar(32) NOT NULL, `contact_client` varchar(32) NOT NULL, `tel_client` varchar(32) NOT NULL, `fax_client` varchar(32) NOT NULL, `id_televendeuse` int(11) default NULL, PRIMARY KEY (`id_client`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=621 ; -- -- Contenu de la table `client`
Réclamation:

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.9.1.1-Debian-2ubuntu1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Mercredi 05 Novembre 2008 à 14:03 -- Version du serveur: 5.0.38 -- Version de PHP: 5.2.1 -- -- Base de données: `qualite` -- -- -------------------------------------------------------- -- -- Structure de la table `reclamation` -- CREATE TABLE `reclamation` ( `id_reclamation` int(11) NOT NULL auto_increment, `date_reclamation` date NOT NULL COMMENT 'date', `heure_reclamation` time NOT NULL, `id_user` int(11) NOT NULL COMMENT 'id user', `id_client` int(11) NOT NULL COMMENT 'client', `id_motif_reclamation` int(11) NOT NULL, `des_reclamation` text NOT NULL, `cause_reclamation` text, `date_fabrication` date default NULL, `date_livraison` date default NULL, `date_dluo` date default NULL, `equipe` varchar(2) default NULL, `n_carton` int(11) default NULL, `quantite` int(11) default NULL, `n_bl` varchar(8) default NULL, `n_facture` varchar(8) default NULL, `id_produit` int(11) default NULL, `lot_reclamation` int(4) default NULL, `id_type_quantite` int(11) default NULL, `id_niveau_reclamation` int(11) NOT NULL, PRIMARY KEY (`id_reclamation`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ; -- -- Contenu de la table `reclamation` --
Ma requête:

Code : Tout sélectionner

SELECT XXXXXX, id_reclamation, heure_reclamation, reclamation.id_motif_reclamation, nom_motif_reclamation, nom_user, prenom_user, code_client, nom_client, adresse_client, ville_client, contact_client, tel_client, fax_client, des_reclamation, cause_reclamation, code_produit, nom_produit, lot_reclamation,n_carton, quantite, nom_type_quantite, DATE_FORMAT(date_fabrication,'%d/%m/%Y') as date_fabrication, DATE_FORMAT(date_dluo,'%d%/%m/%Y') as date_dluo, equipe, n_bl, n_facture, nom_user, prenom_user FROM reclamation LEFT JOIN produit ON produit.id_produit=reclamation.id_produit INNER JOIN motif_reclamation ON motif_reclamation.id_motif_reclamation = reclamation.id_motif_reclamation INNER JOIN user as tel ON user.id_user=client.id_televendeuse INNER JOIN user ON user.id_user = reclamation.id_user INNER JOIN client ON client.id_client = reclamation.id_client LEFT JOIN type_quantite ON reclamation.id_type_quantite=type_quantite.id_type_quantite WHERE id_reclamation='1'
Ou il y a les XXXX j voudrait récupérer le de nom (et prénom de la télé vendeuse) qui sont rattaché a ce client. Mais le problème c'est que id_user est aussi utilise pour generer la personne qui a prit la réclamation.

Comment faire pour ressortir ces 2 informations distinctes ?

Merci

guigui69

Posté : 05 nov. 2008, 19:07
par caroube
Probablement en considérant cette table comme deux tables distinctes, ce que l'on peut faire avec les alias.

Exemple simple, une table des personnes avec id, nom et id du pere (qui est dans la même table personne)

Code : Tout sélectionner

create table personne (id integer, nom varchar(255), prenom varchar(255), id_pere integer)
La table personne est utilisée deux fois avec des alias fils et pere

Code : Tout sélectionner

select fils.id as id_fils, fils.nom as nom_fils, fils.prenom as prenom_fils, pere.id as id_pere, pere.nom as nom_pere, pere.prenom as prenom_pere from personne as fils, personne as pere where fils.id_pere = pere.id