首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >group_concat重复值

group_concat重复值
EN

Stack Overflow用户
提问于 2015-05-04 14:55:39
回答 1查看 81关注 0票数 0

我编写了两个查询来连接具有不同条件的值,两个查询的结果应该是相同的,但是使用query2无法得到正确的结果。这两个查询如下:

query1:

代码语言:javascript
复制
SELECT group_concat(concat(concat(concat(concat(concat(f.NAME, ';') , sgk.NAME),' ') ,cc.operator),' ')) as res_string
FROM complex_check_anag cc,lnksinglechecktocomplexcheck lk,single_check_anag sgk,functionalci f ,lnkconfigurationitemtosinglecheck lkcg 
WHERE cc.complex_check_id = lk.complex_check_id AND sgk.single_check_id = lk.single_check_id and f.id = lkcg.config_item_id
and sgk.single_check_id = lkcg.single_check_id and sgk.status = 'active' GROUP BY cc.NAME

使用query1,我可以得到以下结果:

代码语言:javascript
复制
res_string
---------------------------------------------------------------------------------------------------------- 
MIL04DNS01;memory check and ,MIL04DNS01;cpu_check and 
MIL04APPBOXIP01;cpu_check and ,MIL04APPBOXIP01;memory check and
Sito_Saturn_Secure;log in check and

Query2:

代码语言:javascript
复制
SELECT group_concat(concat(concat(concat(concat(concat(f.NAME, ';') , sgk.NAME),' ') ,cc.operator),' ')) as res_string 
FROM complex_check_anag cc,lnksinglechecktocomplexcheck lk,single_check_anag sgk,functionalci f ,lnkconfigurationitemtosinglecheck lkcg,comp_t_anag cmt
WHERE cc.complex_check_id = lk.complex_check_id AND sgk.single_check_id = lk.single_check_id and f.id = lkcg.config_item_id 
and sgk.single_check_id = lkcg.single_check_id and sgk.status = 'active' and cc.complex_check_id <> cmt.comp_o_id GROUP BY sgk.NAME

使用query2,我可以得到以下结果:

代码语言:javascript
复制
res_string
-------------------------------------------------------------------------------------------------------------------------------
MIL04DNS01;memory check and ,MIL04DNS01;cpu_check and ,MIL04DNS01;memory check and ,MIL04DNS01;cpu_check and ,MIL04DNS01;memory check and ,MIL04DNS01;cpu_check and
MIL04APPBOXIP01;cpu_check and ,MIL04APPBOXIP01;memory check and ,MIL04APPBOXIP01;cpu_check and ,MIL04APPBOXIP01;memory check and ,MIL04APPBOXIP01;cpu_check and ,MIL04APPBOXIP01;memory check and 
Sito_Saturn_Secure;log in check and ,Sito_Saturn_Secure;log in check and ,Sito_Saturn_Secure;log in check and and ,MIL04DNS01;memory check and ,MIL04APPBOXIP01;memory check and  

您能给我一些后缀来修改query2以获得与query1 ?...Thanks相同的结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 15:34:17

以下是一些建议:

  1. CONCAT函数可以接受任意多的参数,所以不需要concat(concat(concat...
  2. 您不应该在FROM tbl1,tbl2,tbl3...表中使用JOIN。它应该由LEFT JOINRIGHT JOININNER JOIN使用ON规则清楚地设置。
  3. 在这里,我猜您的查询应该是什么样的。但是,我有一些问题要理解最后一个表comp_t_anag cmt必须如何加入。我看不出加入那张桌子的真正关键。我对所有的表都做了LEFT JOIN,也许您需要在某个地方使用INNER,这样就可以使用它了。

选择GROUP_CONCAT(CONCAT(f.NAME,‘);“,sgk.NAME,”,cc.operator,(‘’)作为res_string从complex_check_anag cc左加入lnksinglechecktocomplexcheck lk ON cc.complex_check_id = lk.complex_check_id左连接single_check_anag sgk ON sgk.single_check_id = lk.single_check_id和sgk.status = 'active‘左连接lkcg ON sgk.single_check_id = lkcg.single_check_id左连接功能表f ON f.id = lkcg.config_item_id左连接comp_t_anag comp_t_anag关于cc.complex_check_id <> cmt.comp_o_id群的sgk.NAME

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

https://stackoverflow.com/questions/30033279

复制
相关文章

相似问题

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