Bonjour,
J’ai vraiment du mal à optimiser mes requêtes SQL, ne connaissant que très mal ce langage. Je vais proposer un cas que je retrouve souvent dans mes scripts, et que je n’arrive pas à gérer en une seule requete, surement pas manque de syntaxe.
Voila le problème :
J’ai 3 tables dans lesquels je veux selectionner des données.
Table 1
=> id(primaire), id2(index), datat1, date
Table 2
=> id(primaire), id2(index), int, datat2
Table 3
=> id(primaire), id2(index), datat3
Il me faudrait une requete qui selectionne datat1, datat2 et datat3 en ayant toute pour id2 une valeur prédéfinie avant la requete $id2.
- Je dois relever les 5 premières lignes datat1 triées par date en décroissant.
- Je dois relever 2 lignes datat2 quand int est différent de 0, triées au hasard.
- Je dois relever 3 lignes de datat3, triées au hasard.
Je ne sais pas comment passer ma requete de telle sorte qu’après je puisse, en php, gérer un nombre différents de sorties (5 lignes de la table1, 2 de la table2 et 3 de la table3).
Sachant qu’après en sortie il me faut simplement :
$table1=datat1; // Soit 5 enregistrements
$table2=datat2; // Soit 2 enregistrements
$table3=datat3; // Soit 3 enregistrements
Actuellement je fais ça en 3 requetes basiques, ça marche certe, mais je suppose que c’est très laid !
Pour ce qui est du nombre différents d’enregistrements, c’est gérable dans une boucle php avec des conditions, a moins qu’il existe une méthode SQL adaptée qui retournerais NULL peut-être tout simplement.
Merci !