簡體   English   中英

嵌套選擇數據庫sql查詢

[英]nested select database sql query

如何訂購從數據庫中獲取的值?

SELECT * FROM comment;
------------------------------------
| commentid | content | read_unread|
------------------------------------
1              hello      Unread
2              hi         read    


Select * From replies;
//commentid Fk from table "  comment  " so it means row 1 from table comments has 2 replies
------------------------------------
| repnum | rep_content | commentid |
------------------------------------
1              see ya        1
2              ok            1

我想像這樣在表格html / php中顯示


comment num |  Content | replies count
--------------------------------------------------   
 1              hello    2
 2              hi       0

//“回復數2”來自表格回復,回復來自表格評論的評論ID 1

我如何通過答復計數的計數在單個查詢sql順序中顯示此內容???

您可以對SQL查詢使用JOIN

SELECT c.commentid, c.content, COUNT(r.replies) FROM comment c JOIN replies r ON r.commentid = c.commentID GROUP BY c.commentid, c.content;

此處提供更多信息: http : //dev.mysql.com/doc/refman/5.7/en/join.html

試試吧。

SELECT a.commentid, a.content, count(*) as replies_count
FROM comment a
LEFT JOIN replies b on a.commentid=b.commentid
GROUP BY a.commentid, a.content

離開聯接並從答復表計數是您的伙伴。 內部聯接將刪除尚未得到任何replies comments因此此處需要左聯接。 根據您的要求來計算replies數,因此count(*)將不起作用。

SELECT A.commentid AS comment_num, A.content AS Content, count(B.commentid) as replies_count
FROM comment A
LEFT JOIN replies B on A.commentid=B.commentid
GROUP BY A.commentid, A.content

嘗試這個 :

SELECT a.commentid, a.content, count(b.repnum) as replies_count 
FROM comment a left join replies b on a.commentid = b.commentid 
GROUP by a.commentid

暫無
暫無

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

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