簡體   English   中英

如何獲取另一個表的行數,使用 SELECT 列作為使用 MySQL 的 WHERE 子句

[英]How to get a row count of another table, using SELECT column as a WHERE clause using MySQL

我正在從 MySQL 數據庫中的“帖子”表中選擇帖子,但我希望返回的列之一是使用所選帖子 ID 行的評論表中的評論計數。 我的數據庫是關系型的,所以評論表有一個帖子 ID 字段(comment_post_id)。 這是我所擁有的,但此查詢在 PHPMYAdmin 中創建了一個語法錯誤:

SELECT post_id, post_title, post_status, post_image, post_tags, post_views, post_date, user_name, cat_title, 
COUNT(SELECT comment_id FROM comments WHERE comment_post_id = post_id) AS comment_count
FROM posts 
LEFT JOIN users ON post_author = user_id 
LEFT JOIN categories ON post_category_id = cat_id
ORDER BY post_id DESC

Post 和 Comments 表列的布局如下:

帖子:post_id、post_title、post_status、post_image、post_tags、post_views、post_date、post_author、post_category_id

評論:comment_id、comment_post_id、comment_content

您可以在post中加入comments ,然后使用count(comment_id) 而不是多余的子查詢。

SELECT 
    post_id,
    post_title,
    post_status,
    post_image,
    post_tags,
    post_views,
    post_date,
    user_name,
    cat_title,
    COUNT(comment_id) AS comment_count
FROM
    posts
        LEFT JOIN
    users ON post_author = user_id
        LEFT JOIN
    categories ON post_category_id = cat_id
        JOIN
    comments ON post_id = comment_post_id
ORDER BY post_id DESC

您可以使用此查詢在此處獲取計數。 試試這個方法

SELECT post_id, post_title, post_status, post_image, post_tags, post_views, post_date, user_name, cat_title, 
(SELECT COUNT(comment_id) FROM comments WHERE comment_post_id = post_id) AS comment_count
FROM posts 
LEFT JOIN users ON post_author = user_id 
LEFT JOIN categories ON post_category_id = cat_id
ORDER BY post_id DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM