Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Inner Join - Fatal编程技术网

SQL计数特定记录的结果数

SQL计数特定记录的结果数,sql,inner-join,Sql,Inner Join,我有两个表,它们通过内部联接链接。这些是我的桌子: T1 ID name Account 1 name1 123 1 name1 143 T2 AccountNum ID 222 1 111 1 我想为一个特定的名称添加ByID的总数,我的输出应该是 ID name Account NumOfByAcc 1 name1 123 2 在上表中,发生的情况是ID 1有两个帐号(T2)。我如何使

我有两个表,它们通过内部联接链接。这些是我的桌子:

T1
ID    name  Account
1     name1  123
1     name1  143

T2
AccountNum    ID
222           1
111           1
我想为一个特定的名称添加ByID的总数,我的输出应该是

ID    name  Account  NumOfByAcc
 1    name1   123    2
在上表中,发生的情况是ID 1有两个帐号(T2)。我如何使用两个表之间的内部联接计算特定ID的帐号总数。这是我的查询,但我不确定如何完成第二个select语句:

SELECT        Table1.ID, Table1.NAme, Table2.Account AS Expr1, 

                     SELECT count() AS NumOfByAcc//2nd select statement 
FROM            Table2 INNER JOIN
                     Table1 ON Table2.ID= Table1.ID
我不确定如何完成我的第二个select语句:

SELECT        Table1.ID, Table1.NAme, Table2.Account AS Expr1, 

                     SELECT count() AS NumOfByAcc//2nd select statement 
FROM            Table2 INNER JOIN
                     Table1 ON Table2.ID= Table1.ID
像这样:

SELECT
   t1.ID
,  t1.NAme
,  t2.Account AS Expr1
,  (SELECT count(*) FROM Table1 tt WHERE tt.ID=t2.ID) AS NumOfByAcc 
FROM  Table2 t2
INNER JOIN Table1 t1 ON t2.ID= t1.ID
注意别名
t1
t2
tt
的使用。当同一个表需要多次参与单个查询时,别名提供了一种在表达式中引用该表的方法,以便根据需要筛选和/或加入记录。

请尝试:

select *, (select count(*) from T2 where T2.Id = T1.Id) as NumOfByAcc
from T

执行重载的是
GROUP BY
子句。

表中的两行如何具有相同的ID1@Amir上面的表中没有主键,这不是执行
左连接
而不是
内部连接
?如中所示,对于
T2
中不存在的记录,您将获得
0
计数。OP引用了一个内部联接,因此我认为这种情况甚至不会发生。是的,你是对的,但我可能会认为你应该把它看作一个标量子查询,而不是左连接。如果OP需要删除这些行,您的答案可能是正确的选择。我自己不太了解表的关系,但您的查询将为ID=1生成4行,这显然不是OP想要的。@shawnt00我确信此查询将为OP提供足够的信息,以便以一种产生他想要的输出的方式对其进行调整。