[英]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.