在mysql中保持连接时计算唯一值

时间:2016-04-10 08:27:31

标签: mysql

我有两张桌子:
第1名:项目>> p_id,p_name,p_description
第二名:任务>> t_id,t_project,t_name,t_owner
其中p_id与t_prject链接

我试图做的是获得涉及一个任务所有者的项目数量,所以我想我需要加入两个表,并且它们使得过滤器获得单个数字作为项目的数量有人是参与,看着其他答案,我这样做:

SELECT tasks.t_project, COUNT(DISTINCT tasks.t_project ) AS result,
FROM 'tasks' 
LEFT JOIN users ON tasks.t_owner = users.u_id 
WHERE tasks.t_owner=17 
group by 'tasks.t_project'

但是mysql给出了错误

  

#1064 - 您的SQL语法出错;在第3行。

1 个答案:

答案 0 :(得分:0)

您对列/表名使用单引号',这是错误的,您应该使用后退标记。通常,后退标记用于MySQL保留字,即使您调用表tablemax或任何其他保留字。单引号'用于字符串,当将文本放在引号内时,它将自动识别为字符串。

此查询应该有效:

SELECT tasks.t_project, COUNT(DISTINCT tasks.t_project ) AS result,
FROM tasks t
LEFT JOIN users u ON t.t_owner = u.u_id
WHERE  t.t_owner=17
group by t.t_project

由于您没有使用任何保留的关键字,我没有使用后退标记,您也可以对表格名称进行别名,然后您就不会发生此冲突。

你可以read this documents that provides all of MySQL reserved keywords.