gpt4 book ai didi

mysql - 使用多个联结表运行查询

转载 作者:行者123 更新时间:2023-11-30 22:56:04 25 4
gpt4 key购买 nike

我有一个列出案例研究的表格和另一个列出结果的表格。一个案例研究可以有多个结果,所以我创建了一个联结表。我想运行一个 SQL,该 SQL 将显示一次案例以及目前为止我拥有的每个结果

SELECT caseSummaries.caseTitle, caseSummaries.caseSynopsis, RESULTS.resultText
FROM JNCT_RESULT_CASESUMMARY
JOIN caseSummaries ON JNCT_RESULT_CASESUMMARY.caseSummary_FK = caseSummaries.caseID
JOIN RESULTS ON JNCT_RESULT_CASESUMMARY.result_FK = RESULTS.result_ID
GROUP BY caseSummaries.caseID;

这给了我一行,只有三个结果中的第一个。我怎样才能在同一行显示其他人?我必须创建临时表吗?如何完成?到目前为止,我使用了 LEFT JOIN,但我仍然得到一行。如果我不使用 GROUP BY,我会得到 caseSummaries.caseTitle 重复三次和每个列出的结果。我想获得一次案例摘要,每个结果都出现在一个新的列中。谢谢,
C

根据问题假设我有两个表

三个领域的案例研究:

  • 身份证
  • 职位
  • 概要

和另一个包含结果的表格:[项目符号]

  • 道歉
  • 报酬
  • 政策变化

存在多对多关系,我的 SQL 需要像这样显示每个案例研究的结果:

案例一 |标题 |剧情简介 |道歉|赔偿|政策变化
案例2 |题目|剧情简介 |道歉|NULL|政策变化

假设案例 2 只有 2 个结果。目前没有 GROUP BYSELECT DISTINCT 我得到

案例一 |标题 |剧情简介 |道歉
案例一 |标题 |剧情简介 |补偿
案例一 |标题 |概要 |政策变化
案例二 |标题 |剧情简介 |道歉
案例二 |标题 |概要 |政策变化

最佳答案

group_concat功能应该做你需要的:

SELECT   caseSummaries.caseTitle, 
caseSummaries.caseSynopsis,
GROUP_CONCAT(RESULTS.resultText)
FROM JNCT_RESULT_CASESUMMARY
JOIN caseSummaries ON JNCT_RESULT_CASESUMMARY.caseSummary_FK = caseSummaries.caseID
JOIN RESULTS ON JNCT_RESULT_CASESUMMARY.result_FK = RESULTS.result_ID
GROUP BY caseSummaries.caseTitle, caseSummaries.caseSynopsis;

关于mysql - 使用多个联结表运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com