Php 查询代码点火器
我已经编写了一个SQL查询,我必须使用CodeIgniter进行查询。 我的问题是:-Php 查询代码点火器,php,mysql,codeigniter,Php,Mysql,Codeigniter,我已经编写了一个SQL查询,我必须使用CodeIgniter进行查询。 我的问题是:- SELECT COUNT('user_id') FROM tbl_tickets_replies WHERE user_id IN (SELECT id from tbl_users WHERE username IN (SELECT username FROM tbl_tickets WHERE site_referers_id =1)) 我在我的模型中这样做 function getCommentNum
SELECT COUNT('user_id') FROM tbl_tickets_replies WHERE user_id IN (SELECT id from tbl_users WHERE username IN (SELECT username FROM tbl_tickets WHERE site_referers_id =1))
我在我的模型中这样做
function getCommentNumbers() {
$sql = "SELECT COUNT('user_id') FROM tbl_tickets_replies WHERE user_id IN (SELECT id from tbl_users WHERE username IN (SELECT username FROM tbl_tickets WHERE site_referers_id =1))";
return $this->db->query($sql);
}
如何使用活动记录执行此操作
它不起作用:(
我有三个不同的表格:-
tbl_users(id,username);
tbl_tickets(id,username,site_referers_id)
tbl_tickets_replies(id,user_id,comments)
我想做的是选择属于特定用户名的所有评论,该用户名的站点\u referers\u id=1。
我想从具有站点引用id=1的tbl_票证中选择不同的用户名,然后从tbl_用户中获取所选用户名的id,并使用该id计算他有多少评论,并根据用户名显示。
我的查询没有这样做,它显示所有用户的总评论,即。,
假设有两个用户A和B,用户id为1和2,分别有10和15条评论
然后它应该显示为:
A 10
B 15
相反,我的疑问正在显现
A
B 25
您缺少的是groupby聚合函数 试试这个:
SELECT DISTINCT user_id, COUNT('user_id') FROM tbl_tickets_replies WHERE user_id IN
(SELECT id from tbl_users WHERE username IN
(SELECT username FROM tbl_tickets WHERE site_referers_id =1)) GROUP BY user_id
SELECT COUNT('user\u id')
不符合您的想法。您的意思是SELECT COUNT(DISTINCT user\u id)
或SELECT COUNT(*)
这取决于您要做什么。@MarkByers:我已经编辑了我的问题sirCodeigniter的AR不支持子查询,因此您不能不使用任何技巧就使用AR。谢谢,您可以帮助我使用codeigniter中的活动记录编写它吗查看此问题了解更多详细信息,但我认为您应该执行纯mysql查询。Codeigniter在解析复杂的mysql查询时有点懒惰。