【发布时间】:2019-04-30 19:31:39
【问题描述】:
你好,精彩的社区,
我有这个数据库的基本配置 MySQL / PHP:
- 页表
- 标签表
- Pages_Tags 表
查询:
SELECT *, GROUP_CONCAT('tags_name')
FROM pages
LEFT JOIN pages_tags ON pages_tags.pages_id = pages.pages_id
LEFT JOIN tags ON tags.tags_id = pages_tags.tags_id
GROUP BY pages_tags.pages_id;
我有以下错误:
"Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column this is incompatible with sql_mode=only_full_group_by"
所以我做了很多研究,似乎有两种解决方案:
1/ 改变SQL模式 2/ 在 SELECT & GROUP BY 中有相同的列。
两者似乎都是不好的解决方案。第一个是因为我不想更改默认配置,第二个是疯狂的,我需要 SELECT 中的很多列,而不仅仅是 GROUP BY。特别是如果查询更复杂,需要更多的 LEFT JOIN。我需要显示所有这些信息。
你有什么解决办法吗?用其他方法替代? 我对任何事情都持开放态度;)
非常感谢!!
【问题讨论】:
-
向我们展示一些示例数据
-
什么样本数据?它是一个基本结构:百列的页面表、少列的标签表和连接两者的联合表,因为一个页面可以链接到多个标签。我需要在一个字段中列出所有链接标签的页面列表。
标签: mysql sql group-by group-concat