我有2个表通过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),我如何使用两个表之间的INNER JOIN计算特定ID的帐号总数。这是我的查询,但我不确定如何完成我的第二个选择语句:
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
答案 0 :(得分:0)
我不确定如何完成我的第二个选择陈述:
像这样:
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
。当同一个表需要多次参与单个查询时,别名提供了一种在表达式中引用该表以根据需要过滤和/或连接记录的方法。
答案 1 :(得分:0)
select *, (select count(*) from T2 where T2.Id = T1.Id) as NumOfByAcc
from T
答案 2 :(得分:0)
尝试:
SELECT T1.id,
T1.name
T1.account,
V1.accountcount
FROM T1
INNER JOIN
(
SELECT T2.id,
COUNT(*) accountcount
FROM T2
GROUP BY T2.id
) V1
ON T1.id = V1.id
执行繁重任务的GROUP BY
条款。