J'essaie d'écrire une requête sql qui récupère tous les tags liés à chaque sujet affiché sur la page.comment puis-je afficher tous les tags liés à tous les commentaires dans une requête
comme celui-ci
TITLE: feedback1 POSTED BY: User1 CATEGORY: category1 TAGS: tag1, tag2, tag3 TITLE: feedback2 POSTED BY: User2 CATEGORY: category2 TAGS: tag2, tag5, tag7,tag8 TITLE: feedback3 POSTED BY: User3 CATEGORY: category3 TAGS: tag1, tag5, tag6, tag3
La relation des balises aux sujets est beaucoup à beaucoup.
En ce moment, je récupère d'abord tous les sujets de la table "topics" et récupère les balises liées de chaque sujet que je boucle sur le tableau de sujets retourné pour aller chercher des balises. Mais cette méthode est très coûteuse en termes de rapidité et pas efficace aussi.
S'il vous plaît, aidez-moi à écrire cette requête sql.
requête pour aller chercher tous les sujets et ses informations sont les suivantes:
SELECT
tbl_feedbacks.pk_feedbackid as feedbackId,
tbl_feedbacks.type as feedbackType,
DATE_FORMAT(tbl_feedbacks.createdon,'%M %D, %Y') as postedOn,
tbl_feedbacks.description as description,
tbl_feedbacks.upvotecount as upvotecount,
tbl_feedbacks.downvotecount as downvotecount,
(tbl_feedbacks.upvotecount)-(tbl_feedbacks.downvotecount) as totalvotecount,
tbl_feedbacks.viewcount as viewcount,
tbl_feedbacks.title as feedbackTitle,
tbl_users.email as userEmail,
tbl_users.name as postedBy,
tbl_categories.pk_categoryid as categoryId,
tbl_clients.pk_clientid as clientId
FROM
tbl_feedbacks
LEFT JOIN tbl_users
ON (tbl_users.pk_userid = tbl_feedbacks.fk_tbl_users_userid)
LEFT JOIN tbl_categories
ON (tbl_categories.pk_categoryid = tbl_feedbacks.fk_tbl_categories_categoryid)
LEFT JOIN tbl_clients
ON (tbl_clients.pk_clientid = tbl_feedbacks.fk_tbl_clients_clientid)
WHERE
tbl_clients.pk_clientid = '1'
Quelle est la meilleure pratique à suivre dans de tels cas lorsque vous devez afficher toutes les balises liées à tous les sujets en cours d'affichage sur une seule page. Comment puis-je modifier la requête sql ci-dessus, de sorte que toutes les balises et les informations connexes des sujets soient récupérées en utilisant une requête unique. Pour une démo de ce que j'essaye de réaliser est similaire à la page 'questionstions' de stackoverflow. Toutes les informations (tags + informations de chaque sujet affiché) sont correctement affichées.
Merci
Où sont stockées vos étiquettes? – Wil
Je stocke des balises dans une table nommée "tbl_tags". Les sujets sont stockés dans "tbl_topics" et tous les sujets liés sont récupérés en utilisant la table jointe des sujets et tags "tbl_topics_tags" –
(J'ai édité ma réponse avec quelques questions de clarification qui ne rentre pas bien dans un commentaire) –