【发布时间】:2017-03-27 09:15:49
【问题描述】:
我想将第二个查询的计数结果添加到查询第一个表的结果集中,并将这个子查询与第一个表结果的 ID 连接起来。这个简化的代码解释了它:
Select
ID_Field_Table1,
(Select Count(x)
From Table2
Where ID_Field_Table2 = ID_Field_Table1) As mycount
From Table1
什么是正确的语法? 谢谢
此代码已简化,但结构相同。在我的数据库中,ID_Field_Table2 和 ID_Field_Table1 具有相同的名称(比如说 ID_Field)。如果我使用相同的名称,则子查询类似于“...Where ID_Field = ID_Field..”,这总是返回一个 Reslut,因为它没有连接查询(“Select a Where x = x”返回表 2)。
Select
ID_Field AS ID1,
(Select Count(x)
From Table2
Where ID_Field = ID1) As mycount
From Table1
它只是返回一个错误,说 ID1 不存在。
当我使用列的原始名称(相同)时,结果是错误的
当我使用别名时,出现错误
所以我认为查询是错误的。
【问题讨论】:
-
您的查询对我来说似乎没问题。 “不工作”是什么意思?
-
当问题陈述很简单时,很难提供解决方案,“它不起作用”。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。
标签: sql-server correlated-subquery