作者danny2529 (chihche)
看板PHP
标题[请益] 请教SQL语法...
时间Wed Aug 7 13:00:41 2013
遇到一个难题,想请各位大大们帮忙一段SQL语法..
使用mysql
有个table 里面的data
auto_id pid isbn book_name p_name
1 20 9781439854471 sexual danny2529
2 20 9781439854471 sexual chihche
3 20 9780805864618 handbook danny2529
4 20 9780805864618 handbook chihche
5 20 9781848728844 social danny2529
select 这个表单 pid=20 印出全部另外多一个num栏位纪录count(isbn)
变成
auto_id pid isbn book_name p_name num
1 20 9781439854471 sexual danny2529 2
2 20 9781439854471 sexual chihche 2
3 20 9780805864618 handbook danny2529 2
4 20 9780805864618 handbook chihche 2
5 20 9781848728844 social danny2529 1
用过
select a.*,(select count(b.isbn) from table b where pid='20' AND a.isbn=b.isbn)
from table a where pid='20'
但是数度之慢
也改用 inner join+group by 的方式 但是会变成只显示出3笔资料(就是重复的合起来了)
请问大大有什麽方式能写出这种需求吗??
目前有拉一个function出来算num 可是更慢...
因为资料都是好几千笔的....使用者可能会疯掉
感谢各位大大了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.119.126.67
1F:→ Bambe:SELECT *, count(isbn) AS num FROM table WHERE pid = '20' 08/07 14:29
2F:→ Bambe: GROUP BY isbn; 08/07 14:29
这id 1 2会合并 3 4 也会 但是我要全部都显示出来@@
就如第二个那样
谢谢你的回复
※ 编辑: danny2529 来自: 120.119.126.67 (08/07 15:19)
3F:→ kosjason:刚刚上面那个GROUP BY isbn, p_name(补上这个就不会合并) 08/07 16:55