在查询中发现sql_mode = only_full_group_by错误。我尝试了很多方法来修复它。更改sql_mode=''
。我仍然收到此错误。
PDOException:SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'intranet.a.tagid',它在功能上不依赖于GROUP BY中的列条款;这与sql_mode = only_full_group_by:
不兼容
我已经给出了表格字段
SELECT a.tagid,b.tagword,a.metric
from nextag_metrics a
LEFT JOIN nextag_words b ON a.tagid=b.id
WHERE b.tagword is not NULL
AND type='filedepot'
OR groupid in (2931,2938,2941)
OR userid in (1)
OR categoryid in (2,3,4,5,6,8,9,10,11)
GROUP BY b.tagword
ORDER BY b.tagword ASC
答案 0 :(得分:0)
这是您的查询:
SELECT m.tagid, w.tagword, m.metric
FROM nextag_metrics m LEFT JOIN
nextag_words w
ON m.tagid = w.id
WHERE w.tagword is not NULL AND m.type = 'filedepot' OR
m.groupid in (2931, 2938, 2941) OR
m.userid in (1) OR
m.categoryid in (2,3,4,5,6,8,9,10,11)
GROUP BY w.tagword
ORDER BY w.tagword ASC;
此查询还有其他问题。首先,针对您的特定问题,不要破坏数据库(只有完整的分组依据是数据库应该如何工作)。修复查询。
以下是其他一些问题和潜在问题:
WHERE
条款可疑。我猜它并没有完全符合你的要求。NULL
。tagid
和metric
应该来自。我建议你问另一个问题。提供样本数据(作为查询中的文本表)并清楚地解释您要做的事情。