yankey Posté 16 Novembre 2006 Partager Posté 16 Novembre 2006 Bonjour, Je dois effectuer une requete sur deux tables. Ces deux tables sont différentes, il n'y a pas le même nombre de champs, les champs n'ont pas les mêmes noms, et il n'y a aucun élèments qui puisse les relier. Comment faire ? J'ai tenté ceci: $sql="SELECT table1.id, table2.numero FROM table1,table2 WHERE table1.champx = 'oui' and table2.champy = 'ok'"; mais il m'annonce 25 fois plus de résultats que ceux qu'il devrait trouver normalement... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 16 Novembre 2006 Partager Posté 16 Novembre 2006 Bonjour, Si elles n'ont aucun lien entre elles, il vaudrait mieux faire deux requetes distinctes. Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
yankey Posté 16 Novembre 2006 Auteur Partager Posté 16 Novembre 2006 J'avoue que je m'embrouille complètement avec cette requete... J'ai les neurones toutes mélangées à force... Si je fais deux requêtes, comment est-ce que je vais rassembler et trier les résultats ensembles... En gros, j'ai une vielle table 'Objets' que je ne peux pas modifier parce qu'un couplage logiciel à été réalisé dessus. J'ai ensuite une nouvelle table 'Articles'. Dans la table 'Objets', je veux remonter les champs: Prix, Poid, Couleur, là ou champx='oui' ET dans la table 'Articles', je veux afficher les champs: l_prix, l_poid, l_couleur,l_quantite,l_fournisseur, là ou champy='ok' ET ensuite je veux retrier tous les résultats par ordre Prix et l_prix ASC... Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 16 Novembre 2006 Partager Posté 16 Novembre 2006 Et il n'existe aucun lien possible entre ses deux tables ? pas de nom d'article, de référence, etc.? Sinon, les deux requêtes sont la solution, l'affichage se faisant par traitement php. xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
yankey Posté 16 Novembre 2006 Auteur Partager Posté 16 Novembre 2006 (modifié) J'ai une piste, en faisant une requete du type: select Prix, Poid, Couleur from Objets where champx='oui' union all select l_prix as Prix, l_poid as Poid, l_couleur as Couleur from Articles where champy='ok' order by Prix j'obtiens bien le bon total , maintenant je vais poursuivre avec l'affichage, mais bon la requête fonctionne de cette façon. Merci Modifié 16 Novembre 2006 par yankey Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 16 Novembre 2006 Partager Posté 16 Novembre 2006 Oui mais à quel prix! Union est très très rarement utilisé parce que très gourmand en ressource. Lien vers le commentaire Partager sur d’autres sites More sharing options...
byc Posté 16 Novembre 2006 Partager Posté 16 Novembre 2006 (...) J'ai ensuite une nouvelle table 'Articles'. Dans la table 'Objets', je veux remonter les champs: Prix, Poid, Couleur, là ou champx='oui' ET dans la table 'Articles', je veux afficher les champs: l_prix, l_poid, l_couleur,l_quantite,l_fournisseur, là ou champy='ok' ET ensuite je veux retrier tous les résultats par ordre Prix et l_prix ASC... Comme Portekoi te l'a conseillé, il vaut mieux effectuer 2 requêtes distinctes. Tu créé un tableau $tab_prix, $tab_poids, $tab_couleur, $tab_qte, et $tab_fournisseur. Tu enregistre les résultats de tes 2 requêtes dans ces tableaux. Ensuite, tu auras juste à faire un tri sur ton tableau en utilisant la fonction asort() Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant