【发布时间】:2021-11-11 11:07:24
【问题描述】:
MYSQL
我正在尝试从 3 个单独的表中获取 5 个值,其中每个值都在它自己的列中。
我要获取的值是:SC_Name、SC_Description、AR_Name、AR_Description、AR_id
我有 3 个表从中提取数据:
Service_Category
Area_Responsibility
Key_Scar
Service_Category 包含以下列:
id
SC_Name
SC_Description
Area_Responsibility 包含以下列:
id
AR_Name
AR_Description
Key_SCAR 包含以下列:
id
KS_id
SC_id
AR_id
拥有 3 个单独的表的目的是让我可以更好地分离前两个表中的数据,然后在第三个表中根据 KS_id 和来自 Service_Category 的 id 和来自 Area_Responsibility 的 id 将它们链接在一起。
目前我有以下个人查询(KS_id 始终为 1):
SELECT a.SC_Name, a.SC_Description
FROM Service_Category AS a
where a.id IN (SELECT SC_id
FROM Key_SCAR
WHERE KS_id = 1);
SELECT a.AR_Name, a.AR_Description
FROM Area_Responsibility AS a
where a.id IN (SELECT AR_id
FROM Key_SCAR
WHERE KS_id = 1);
我想将这些加入到一个查询中,输出:SC_Name、SC_Description、AR_Name、AR_Description 和 AR_id。
我尝试将这两个查询合并如下:
SELECT a.SC_Name, a.SC_Description
FROM Service_Category AS a
where a.id IN (SELECT SC_id
FROM Key_SCAR
WHERE KS_id = 1)
UNION
SELECT b.AR_Name, b.AR_Description
FROM Area_Responsibility AS b
where a.id IN (SELECT AR_id
FROM Key_SCAR
WHERE KS_id = 1);
但这不适用于我的输出,因为我使用的解释器将 AR_Name 和 AR_Description 放在列标题 SC_Name 和 SC_Description 下。我需要每个输出的值都在它们自己的列中。
我希望这可以很好地解释它,并提前感谢您的帮助!
【问题讨论】:
-
请尽可能提供少量样本数据和预期输出。
-
手册和查找 JOIN,它确实是 SQL 的基本构建块之一
-
嗨:一切都很好,下面的 Groovy 家伙提供的答案让我得到了解决方案。我还在学习,所以有人帮助真是太棒了。感谢大家的反馈。
-
该答案可能有效 - 但前提是您在两个表中具有相同的 ID。