Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询:需要关于子查询的帮助吗_Sql_Database_Join_Subquery - Fatal编程技术网

SQL查询:需要关于子查询的帮助吗

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 感谢您的

问题如下:

共有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
感谢您的帮助。

第一个问题可能是:

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的原因与此相同:)