[Résolu] [MySQL] SELECT sur plusieurs tables

SELECT sur plusieurs tables [Résolu] [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 15-06-2006 à 18:39:13    

Bonsoir, je possède une BDD avec 4 tables:
 
t_categorie (id_categorie, categorie)
t_type (id_type, type)
t_secteur (id_secteur, secteur)
t_maison (idx_categorie, idx_type, idx_secteur, prix, reference, ville, nb_chambre....)
 
C'est pour un site d'annonces immobilières, je cherche à récupérer par exemple toutes les affaires dont l'"idx_type" de la tables "t_maison" correspond à l'"id_type" de la table "t_type".
 
J'ai fait ceci:
 
$reponse = mysql_query("SELECT type, secteur, categorie, no_asp, prix, cp_internet, ville_internet, nb_chambres, surf_hab, surf_terrain FROM t_type, t_secteur, t_maison, t_categorie WHERE t_maison.idx_type_offre = t_type.id_type" );
 
ensuite j'affiche les données comme ça:
 
while ($donnees = mysql_fetch_array($reponse) )
echo $donnees['prix'];
echo $donnees['nb_chambres'];
 
Le probleme c'est que le navigateur plante au bout d'un moment (utilisation mémoire trop importante).
 
Pourriez-vous m'aider?
 
Merci par avance.


Message édité par Ben-o le 16-06-2006 à 16:20:49
Reply

Marsh Posté le 15-06-2006 à 18:39:13   

Reply

Marsh Posté le 15-06-2006 à 20:33:31    

LIMIT ?

Reply

Marsh Posté le 15-06-2006 à 21:37:59    

est ce le navigateur qui plante ou est ce ton script qui se prend un timeout ?

Reply

Marsh Posté le 15-06-2006 à 21:45:21    

tu as 4 tables, tu dois donc lier ces 4 tables dans le where,sinon, tu vas retourner leproduit cartésien des tables


Message édité par flo850 le 15-06-2006 à 21:46:03
Reply

Marsh Posté le 16-06-2006 à 10:32:36    

Après recherches, je pense que c'est effectivement le produit cartésien qui est retourné, et comme j'ai plus de 3000 entrées, ceci est du coup très long.
Comment puis-je lier les tables dans le WHERE?

Reply

Marsh Posté le 16-06-2006 à 14:20:21    

tu dois faire quelque chose du genre
SELECT truc1 , truc2 FROM table1,table2,table3
WHERE table1.cle = table2.cle2 AND table 1.cle3 = table3.cle4
 
je te laisse adapter ca a ta requete ;)

Reply

Marsh Posté le 16-06-2006 à 14:53:12    

Merci bien, je teste ça.

Reply

Marsh Posté le 16-06-2006 à 16:20:18    

Ca fonctionne, c'est super, encore merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed