Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 16/11/2006, 16h01   #1
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
Par défaut [SQL] requete sur deux tables

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:

Citation:
$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...
yaka2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h38   #2
Invité de passage
 
Inscription : février 2006
Messages : 1
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 1
Points : 1
Points : 1
Salut!

Ben en fait comme tes deux tables n'ont aucun champs en commun, il te sort pour chaque table1.id (où champx = oui) tous les table2.numero (où champy = ok).
Si tu mets un DISTINCT devant table1.id il ne te les sortira qu'en un seul exemplaire, par contre tu n'auras pas tout les table2.numero (où champy = ok).

Mais je comprends pas : puisque tes deux tables n'ont rien en commun, pourquoi est-ce que tu fais pas deux requêtes différentes, une sur chaque table?
Glohrminas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h44   #3
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
Ben, je fais deux requêtes, je n'arrive pas à imaginer comment je vais rassembler et trier les résultats ensembles...

En gros, j'ai une vielle table 'Objets' que je ne peux pas modifier.

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...
yaka2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h52   #4
Invité régulier
 
Inscription : juillet 2002
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 6
Points : 7
Points : 7
Bonjour,

Si tu veux mettre les résultats les uns à la suite des autres il faut que tu fasse une requête union

Qqch comme
Code :
1
2
3
4
5
6
7
8
9
 
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
14JoursEnMai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 17h06   #5
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
EXACT, en faisant correspondre des champs de cette façon, apparemment ça marche.

Merci beaucoup
yaka2 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 18h28.


 
 
 
 
Partenaires

Hébergement Web