Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算一个非常复杂的选择_Php_Mysql - Fatal编程技术网

Php 计算一个非常复杂的选择

Php 计算一个非常复杂的选择,php,mysql,Php,Mysql,我有一个非常复杂的选择,即使用3个表来显示客户的最后活动 因此: 嗯,每个表都有一行名为SEEN。它是一个带有0或1的varchar集(0表示用户未看到消息,1表示用户已看到消息) 我想在这个查询中添加的是对seen=0的行进行计数 我想显示:您有4个新警报 选择计数(*)将不起作用,也不会正确计数(所看到的设置为1) 我可以做些什么来计算所有这些选择,其中SEED=0?试试这个 select a.*, SUM(IF(a.seen='0', 1, 0)) as 'unseen_count' FR

我有一个非常复杂的选择,即使用3个表来显示客户的最后活动

因此:

嗯,每个表都有一行名为SEEN。它是一个带有0或1的varchar集(0表示用户未看到消息,1表示用户已看到消息)

我想在这个查询中添加的是对seen=0的行进行计数

我想显示:您有4个新警报

选择计数(*)将不起作用,也不会正确计数(所看到的设置为1)

我可以做些什么来计算所有这些选择,其中SEED=0?

试试这个

select a.*, SUM(IF(a.seen='0', 1, 0)) as 'unseen_count' FROM (
    select c.data, p.user, concat(c.user, ' buy your product') as logs, seen from sell c inner join posts p on c.foto = p.id where p.user = ?
    union all
    select f.data, c.user, concat(c.user, ' asked you a question') as logs, seen from questions f inner join cadastro c ON f.user = c.id where f.nick = ?
    union all
    select l.data, l.user, concat(l.user, ' like your product') as logs, seen from likes l inner join posts p on l.post = p.id where p.user = ?
) as a
order by data desc
试试这个

select a.*, SUM(IF(a.seen='0', 1, 0)) as 'unseen_count' FROM (
    select c.data, p.user, concat(c.user, ' buy your product') as logs, seen from sell c inner join posts p on c.foto = p.id where p.user = ?
    union all
    select f.data, c.user, concat(c.user, ' asked you a question') as logs, seen from questions f inner join cadastro c ON f.user = c.id where f.nick = ?
    union all
    select l.data, l.user, concat(l.user, ' like your product') as logs, seen from likes l inner join posts p on l.post = p.id where p.user = ?
) as a
order by data desc

数据类型为varchar的字段的名称是什么?并向question.oh添加一些示例输入数据,它是PHP$stmt->bind_param('sss',$user,$userid,$user);数据类型为varchar的字段的名称是什么?并向question.oh添加一些示例输入数据,它是PHP$stmt->bind_param('sss',$user,$userid,$user)#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用接近“”的正确语法?联合all@Livia,是否将
标记替换为正在运行查询的用户的user/nick?是的!它是PHP$stmt->bind_param('sss',$user,$userid,$user)中的dinamic@Livia,我建议您在用实际值替换参数后,在phpMyAdmin或SQLyog这样的控制台中运行查询,一旦完善,然后移动到PHPI也可以尝试。如果我使用select c.data,则计数(p.user)。。。例如,它将按用户分组,不是吗?有一种方法可以按p.user使用数据DESC进行分组?先看最近的新闻?如果这个计数与数据描述一起工作,我认为这对我来说是很好的#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用接近“”的正确语法?联合all@Livia,是否将
标记替换为正在运行查询的用户的user/nick?是的!它是PHP$stmt->bind_param('sss',$user,$userid,$user)中的dinamic@Livia,我建议您在用实际值替换参数后,在phpMyAdmin或SQLyog这样的控制台中运行查询,一旦完善,然后移动到PHPI也可以尝试。如果我使用select c.data,则计数(p.user)。。。例如,它将按用户分组,不是吗?有一种方法可以按p.user使用数据DESC进行分组?先看最近的新闻?如果这个计数与数据描述一起工作,我认为这对我来说是很好的!