yankey Posté 16 Novembre 2006 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...
Portekoi Posté 16 Novembre 2006 Posté 16 Novembre 2006 Bonjour, Si elles n'ont aucun lien entre elles, il vaudrait mieux faire deux requetes distinctes. Portekoi
yankey Posté 16 Novembre 2006 Auteur 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...
xpatval Posté 16 Novembre 2006 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
yankey Posté 16 Novembre 2006 Auteur 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
Portekoi Posté 16 Novembre 2006 Posté 16 Novembre 2006 Oui mais à quel prix! Union est très très rarement utilisé parce que très gourmand en ressource.
byc Posté 16 Novembre 2006 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()
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant