Disons que nous avons des tables arborescentes.Sélection de lignes à partir de plusieurs tables. Comment?
Products Fields Fields Value
---------------- ------------- --------------
pid catid fid catid fid pid value
-------|-------| -----|------- ------|-----|--------
1 1 1 1 1 1 25%
2 1 2 1 1 2 32.5%
3 2 2 1 45%
2 2 42%
3 1 17.3%
3 2 21%
La façon normale consiste à sélectionner dans une Products
une requête et une boucle à travers le jeu de résultats (RS1
).
Ensuite, nous sélectionnons Fields
pour catid
pour chaque ligne (RS2
). Ensuite, effectuez la même action avec RS2
pour sélectionner `Valeur des champs '.
Seul le problème est le problème de performance qui sera réduit en raison de l'exécution de beaucoup de requêtes `quand il y a beaucoup de lignes dans chaque table.
Souhaitez-vous suggérer une meilleure solution pour exécuter moins de requêtes?
modifier
Je veux montrer chaque produit dans une boîte et afficher les champs pour chaque produit avec sa juste valeur. joindre des tables arborescentes ensemble retournera des valeurs dupliquées pour chaque FieldValue
dans Products
et non utilisable en boucle.
utilisation d'un requête unique avec jointure (s)? –
Vous voulez un 'JOIN': http://dev.mysql.com/doc/refman/5.0/en/join.html – Polynomial
moins de requêtes mais plus compliqué :) –