Requete sur 4 tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete sur 4 tables

Re: Requete sur 4 tables

par Fredy07 » 03 nov. 2009, 05:16

Merci Ryle pour le coup de main, j'ai fais 3 requetes simples, comme suite:
sql1 = "select.."
while () {

sql2..
sql3..
}
Ce que je veux faire c'est de regrouper les 2 sql entre la boucle en une seule, sous la reserve de WHERE:
sql2 = "SELECT * FROM table1 WHERE id_des=id_livre"
sql3 = "SELECT * FROM table2 WHERE id_ch=id_livre"

Re: Requete sur 4 tables

par Ryle » 31 oct. 2009, 16:11

Tu ne pourras pas obtenir ce résultat avec une seule requête... en revanche avec des jointures simples tu peux obtenir une liste répétant les livres, titres, descriptions pour chaque chapitre :

Code : Tout sélectionner

Livre 1 ; Titre 1 ; Description 1 ; Chapitre 1 Livre 1 ; Titre 1 ; Description 1 ; Chapitre 2 Livre 2 ; Titre 2 ; Description 2 ; Chapitre 1 Livre 2 ; Titre 2 ; Description 2 ; Chapitre 2 Livre 2 ; Titre 2 ; Description 2 ; Chapitre 3 Livre 2 ; Titre 2 ; Description 2 ; Chapitre 4
A partir de ces données, tu peux aisément les remettre en forme avec php, en stockant chaque élément dans une variable temporaire. En gros, dans $livreTemp tu stockes le nom du livre, à chaque fois que le nom du livre change, tu l'affiche. Idem pour le titre, la description ...
while (...) {
  if ($livre != $livreTemp) {
    echo "<br />+ $livre"; // affiche le livre
    $livreTemp = $livre; // stocke la nouvelle valeur
  }

  if ($titre != $titreTemp) {
    echo "<br />++ $titre"; // affiche le titre
    $titreTemp = $titre; // stocke la nouvelle valeur
  }
  ...

Requete sur 4 tables

par Fredy07 » 31 oct. 2009, 07:53

Bonjour,

J'ai 4 tables: livres, titres, descriptions, chapitres, comment faire une requete afin d'avoir une structure comme celle la:

+ Livre1
++ Titre1
+++ Description1
++++ Chapitre1
++++ Chapitre2

+ Livre2
++ Titre2
+++ Description2
++++ Chapitre1
++++ Chapitre2
++++ Chapitre3
++++ Chapitre4

Merci