[英]nested select database sql query
how to order a values fetched from database?? 如何订购从数据库中获取的值?
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
i want to show this in a table html/php like this 我想像这样在表格html / php中显示
comment num | Content | replies count
--------------------------------------------------
1 hello 2
2 hi 0
//the "replies count 2" came from the table replies replied to commentid 1 from table comment //“回复数2”来自表格回复,回复来自表格评论的评论ID 1
how can i show this in a single query sql order by the count of the replies count??? 我如何通过答复计数的计数在单个查询sql顺序中显示此内容???
You can use JOIN
on SQL query : 您可以对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;
More infos here : http://dev.mysql.com/doc/refman/5.7/en/join.html 此处提供更多信息: http : //dev.mysql.com/doc/refman/5.7/en/join.html
Try it. 试试吧。
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
Left join and count from replies table is your buddies. 离开联接并从答复表计数是您的伙伴。 Inner join will remove
comments
those don't yet get any replies
so here left join will be required. 内部联接将删除尚未得到任何
replies
comments
因此此处需要左联接。 And count from replies
is your requirement so count(*) will not work. 根据您的要求来计算
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
Try this : 尝试这个 :
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.