我創建一個博客文章的系統中,我使用下面的表結構: -在單個查詢中使用兩個投射表?
blog_category
category_id, category_name, enabled, created_date
blog_post
post_id,title,article, author_id,date_published
post_category
category_id, post_id
blog_tag
tag_id, tag_name
post_tag
id,tag_id,post_id
post_related
id, post_id, post_related_id
blog_comment
comment_id, post_id, is_reply_to_id,comment,user_id
我的問題是:
如何獲得這種類型的輸出在一個單一的查詢
title,author_name,article,total_comments,post_tags
如何在post_related表中插入記錄以顯示相關帖子時選擇ap關節柱。
我想是這樣,但它表明
unknown column bp.post_id
CREATE PROCEDURE blog_get_posts_in_category( IN inCategoryId INT, IN inShortPostDescriptionLength INT, IN inPostsPerPage INT, IN inStartItem INT) BEGIN PREPARE statement FROM "SELECT bp.post_id, bp.title,(select count(*) from blog_comment where post_id=bp.post_id) as total_comments, IF(LENGTH(bp.article) <= ?, bp.article, CONCAT(LEFT(bp.article, ?), '...')) AS article, DATE_FORMAT(bp.date_published,'%d %M %Y at %h:%i:%s %p') as date_published, bp.banner_image,ba.display_name FROM blog_post bp INNER JOIN blog_post_to_category bpc ON bpc.post_id = bp.post_id INNER JOIN blog_author ba ON ba.id = bp.author_id WHERE bpc.category_id = ? and enabled=1 ORDER BY bp.post_id DESC LIMIT ?, ?"; SET @p1 = inShortPostDescriptionLength; SET @p2 = inShortPostDescriptionLength; SET @p3 = inCategoryId; SET @p4 = inStartItem; SET @p5 = inPostsPerPage; EXECUTE statement USING @p1, @p2, @p3, @p4, @p5; END$$
是的,這個過程不屬於blog_related表。我不知道如何在創建新帖子時如何在blog_related表格中插入記錄以及如何將它們顯示爲相關帖子。 –
它似乎太微不足道了,但插入post_related(post_id,post_related_id)值(<<帖子的ID >>,<<相關帖子的ID >>)的問題是什麼?您只需確保'id'列是自動增加的,並且您需要知道相關帖子的ID。當然,後一個取決於您的工作流程... –
先生感謝您的支持,但您的建議查詢post_category,post_tag表的作用是什麼,因爲這些表是連接表並根據特定類別進行搜索。 –