【问题标题】:group concat between two tables在两个表之间分组连接
【发布时间】:2014-02-15 06:23:29
【问题描述】:

表 1:PROJECT_BASIC_INFORMATION

PROJECT_BASIC_INFORMATION_ID | TITLE
PBID_1                         TITLE_1
PBID_2                         TITLE_2
PBID_3                         TITLE_3

表 2:MAP_ASSOCIATED_PROJECTS

MAP_ID | PROJECT_BASIC_INFORMATION_ID | ASSOCIATED_PROJECT_BASIC_INFORMATION_ID 
  1            PBID_1                          PBID_2 
  2            PBID_1                          PBID_3

我想查询表 1 中的单个 project_basic_information_id,请以逗号分隔值给我所有相关的 project_basic_information_id 和相应的标题。

例如:对于 table1 中的 PBID_1,我应该得到类似的输出

Project_basic_information_ids  | Project_titles 
pbid2,pbid3                      title2,title3

我试过这个查询

SELECT  GROUP_CONCAT(DISTINCT a.`ASSOCIATED_PROJECT_BASIC_INFORMATION_ID`) AS PROJECT_BASIC_INFORMATION_IDS,GROUP_CONCAT(DISTINCT b.`TITLE`) AS TITLE
FROM MAP_ASSOCIATED_PROJECTS a  LEFT OUTER JOIN
`PROJECT_BASIC_INFORMATION` b ON  b.PROJECT_BASIC_INFORMATION_ID =a.PROJECT_BASIC_INFORMATION_ID 

【问题讨论】:

    标签: mysql sql select group-by group-concat


    【解决方案1】:

    试试这个:

    SELECT GROUP_CONCAT(DISTINCT a.ASSOCIATED_PROJECT_BASIC_INFORMATION_ID) AS Project_basic_information_ids  ,
           GROUP_CONCAT(DISTINCT b.TITLE) AS Project_titles 
    FROM MAP_ASSOCIATED_PROJECTS a  
    LEFT OUTER JOIN PROJECT_BASIC_INFORMATION b ON a.ASSOCIATED_PROJECT_BASIC_INFORMATION_ID = b.PROJECT_BASIC_INFORMATION_ID 
    WHERE a.PROJECT_BASIC_INFORMATION_ID = 'PBID_1'
    GROUP BY a.PROJECT_BASIC_INFORMATION_ID
    

    【讨论】:

    • 是的,明白了。错过了;(感谢您的帮助。它按预期工作
    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多