SQL查询:需要关于子查询的帮助吗
问题如下: 共有2个相关表格(我提供了一些示例值,以使其简化): 表是相关的,第二个表说明了与电路id的关系。SQL查询:需要关于子查询的帮助吗,sql,database,join,subquery,Sql,Database,Join,Subquery,问题如下: 共有2个相关表格(我提供了一些示例值,以使其简化): 表是相关的,第二个表说明了与电路id的关系。 需要查询以下情况: 1) 列出具有回路依赖关系的回路名称 预期产出: name dependent_name a b a c name count a 2 2) 列出电路名称和计数(依赖项的数量) 预期产出: name dependent_name a b a c name count a 2 感谢您的
需要查询以下情况:
1) 列出具有回路依赖关系的回路名称 预期产出:
name dependent_name
a b
a c
name count
a 2
2) 列出电路名称和计数(依赖项的数量)预期产出:
name dependent_name
a b
a c
name count
a 2
感谢您的帮助。第一个问题可能是:
SELECT c1.`name`, c2.`name`
FROM Circuit_Dependent cd INNER JOIN Circuit c1
ON cd.id = c1.id
INNER JOIN Circuit c2
ON cd.depend_id = c2.id
第二个查询可能是:
SELECT c.`name`, COUNT(DISTINCT cd.depend_id) AS count
FROM circuit c INNER JOIN Circuit_Dependent cd
ON c.id = cd.id
GROUP BY c.id
如果这是一份家庭作业,请添加适当的标签。这是面试中提出的问题之一。我希望你不要将这里的答案用于工作面试-看起来很可疑。不可能。。。我在面试后发布了这个问题,我想知道答案,以便为下次做好准备。我不认为您的第二个查询会执行,您不能引用select中不属于聚合的列。(也就是说,您选择了name,但它既不是您的组的一部分,也不是聚合函数)@CAbbott:您尝试过吗?好的,它可以工作:)无论如何,OP可以用
groupbyc.name
更改它。谢谢:)因为OP没有指定数据库,所以我只使用SQL Server。:)@卡博特:哦,好的。。我使用MySql的原因与此相同:)