首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GROUP CONCAT和GROUP BY问题

GROUP CONCAT和GROUP BY问题
EN

Stack Overflow用户
提问于 2012-10-12 06:44:31
回答 1查看 115关注 0票数 0

假设一个对象可以有多个tid

现在假设我执行以下查询:

代码语言:javascript
复制
SELECT n.nid, t.tid, GROUP_CONCAT(t.tid) 
FROM node n JOIN term_node t ON t.nid = n.nid 
GROUP BY n.nid 
HAVING t.tid = 31;

其中,我想获取表节点中具有tid = 31...but的条目,然后我还想要与该行(因此是GROUP_CONCAT)相对应的所有tid的列表,即使它们不是31

使用WHERE t.tid = 31将省略组concat中不是31的tid,使用HAVING t.tid = 31将省略出现在GROUPed行中的tid列不是31的行

任何一种方法都有可能使GROUP_CONCAT列表不完整,或者至少有一个tid = 31的节点行不完整

有没有办法解决这个问题,这样我就可以保证获取所有节点,其中该节点至少有一个tid关联等于31,并且GROUP_CONCAT将列出与该节点关联的所有tid列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-12 06:51:36

这可能会比两个查询更好。GROUP_CONCAT对结果字符串的长度有限制,因此它是不可靠的,除非您知道您将始终处于字符串长度限制之下。

我会运行第一个查询'WHERE tid = 31',然后运行一个单独的查询来获取所有其他tid,并在代码中组合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12849720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档