2010-03-08 3 views
0

Je cherche le meilleur moyen d'afficher les données de 3 tables. Laisse-moi expliquer. J'ai une table principale qui répertorie les événements que chaque événement peut avoir un certain nombre de catégories, donc j'utilise une table de jointure reliant les catégories aux événements. Je veux boucler tous les événements et afficher sous chaque événement les catégories qui ont été reliées via la table de jointure et je ne suis pas sûr de la manière la plus efficace de le faire?php: quel est le moyen le plus rapide pour afficher les données relatives entre trois tables db

plus d'info:

Je peux facilement le faire en ajoutant dans une instruction SQL placée à l'intérieur de la boucle d'événements qui sort les catégories sélectionnées en mettant à jour l'ID d'événement dans l'instruction chaque fois qu'il boucles, mais je suis Bien sûr, il existe une méthode plus élégante qui utilise une requête sql qui crée un tableau qui peut ensuite être utilisé dans la boucle des événements - je ne suis pas sûr où je devrais commencer à chercher?

+3

Qu'est-ce que votre look SQL comme jusqu'à présent? –

+0

Et aussi, à quoi ressemblent vos tables et combien de lignes devraient-elles y avoir (en particulier à quelle vitesse le nombre de lignes augmente-t-il si elles le font) – Romain

Répondre

0

En supposant que vous avez des tables comme les suivantes:

create table event ( 
    event_id int not null primary key, 
    .... 
); 

create table evcat ( 
    event_id int not null, 
    cat_id int not null, 
    key (event_id, cat_id) 
); 

create table category (
    cat_id int not null, 
    ... 
); 

Ensuite, la requête est simplement une jointure entre les tables 3:

select * from event ev 
    join evcat ec on ec.event_id = ev.event_id 
    join category c on c.cat_id= ec.cat_id; 
Questions connexes