Join 尝试从四个表中创建一个表

Join 尝试从四个表中创建一个表,join,union,junction,Join,Union,Junction,我一直在尝试创建一个查询,从至少三个具有多对多关系的不同表中提取结果 最后,我想用一个表格列出案例、结果和投诉。 所有案例都可能没有、有一个或多个结果,相同的关系适用于投诉。我希望能够列出一次案例,然后在后续专栏中列出与该案例相关的所有结果和投诉。 我曾尝试在一列中获得结果,而不是重复案例,但当我使用UNION组合结果和投诉时,一列标题会覆盖另一列标题 感谢您的帮助,这里是小提琴的链接我建议您从以下查询结构开始: SELECT c.caseID, c.caseTitle, c.c

我一直在尝试创建一个查询,从至少三个具有多对多关系的不同表中提取结果

最后,我想用一个表格列出案例、结果和投诉。 所有案例都可能没有、有一个或多个结果,相同的关系适用于投诉。我希望能够列出一次案例,然后在后续专栏中列出与该案例相关的所有结果和投诉。 我曾尝试在一列中获得结果,而不是重复案例,但当我使用UNION组合结果和投诉时,一列标题会覆盖另一列标题


感谢您的帮助,这里是小提琴的链接

我建议您从以下查询结构开始:

SELECT
        c.caseID, c.caseTitle, c.caseSynopsis /* if more columns ... add to group by also */
      , group_concat(co.concern)
      , group_concat(re.resultText)
FROM caseSummaries AS c 

LEFT JOIN JNCT_CONCERNS_CASESUMMARY AS JCC ON c.caseID = JCC.caseSummary_FK
LEFT JOIN CONCERNS AS co ON JCC.concerns_FK = co.concernsID

LEFT JOIN JNCT_RESULT_CASESUMMARY AS JRC ON c.caseID = JRC.caseSummary_FK
LEFT JOIN RESULTS AS re ON JRC.result_FK = re.result_ID

GROUP BY
        c.caseID, c.caseTitle, c.caseSynopsis /* add more ... here also */
;
将表格中的案例摘要视为最重要的,然后其他所有内容都与此无关

请注意,尽管MySQL允许,但您也应该将select子句中包含的每个非聚合列放入GROUPBY子句中


另请参见:

将一些数据添加到案例摘要会有所帮助,谢谢,由于原始数据的时间和保密性,我没有向案例摘要表添加任何内容。通过仅按caseID分组,我得到了我想要的结果,因为出于某种原因,当我添加其他字段时,它仍然重复案例,并且我能够向组添加第三个表。\u concat,因此非常感谢您的帮助。当我添加其他字段时,它仍然重复案例是的,SQL将重复值-这没有错,这是预料之中的,最终你会明白我为什么希望。要获得包含多行源数据的单行数据,您需要一些特殊的东西,比如group_concat,做得很好。干杯。还有一个问题浮出水面,我现在让小组把我的头发加倍。我将发布另一个提琴,可能会把它放在一个新问题中