作者lazyhome (Hava A Nice Day)
看板Database
标题Re: [SQL ] 这样的要求可以用一个SQL来解决吗
时间Mon Apr 18 16:14:05 2011
※ 引述《knives ()》之铭言:
: 我的DBMS是 Mysql
: 我有一个表格叫 post_reply,其中的结构:
: id :主键
: fid : 记录是回覆那一个id的,如果是起始发言的话就填0
: content : 内容
: 现在有一个要求是除了要用 SELECT * FROM post_reply WHERE fid = 0 //先找第一层
: 的所有栏位,还要再加上一个 pcount
: 这个pcount 是从 select count(id) FROM post_reply WHERE fid = (刚才的id )
: 请问有没有办法把这两个sql 合并成一支sql
: 谢谢回答
SELECT post_reply.id, pcount
FROM post_reply
LEFT JOIN (
SELECT count( fid ) AS pcount, fid
FROM post_reply
WHERE fid <> 0
GROUP BY fid
) AS test ON test.fid = post_reply.id
WHERE post_reply.fid = 0
参考看看吧, 但 pcount有可能会有NULL产生, 先声明一下
我猜你的pcount应该是指回文数, 这样应该就没问题了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.123.189.152
※ 编辑: lazyhome 来自: 125.123.189.152 (04/18 16:23)
1F:→ knives:感谢了,另外有没有办法让NULL自动传回0阿 04/18 16:40
2F:→ lazyhome:SELECT post_reply.id, ifnull( pcount, 0 ) AS pcount 04/18 17:21
3F:→ knives:谢谢回答,已解决了 04/18 17:33