1

我需要有关 SQL 的帮助。我在终端中有一个列,在 table2 中有一个相互匹配的列。(索引)我想在表“终端”中显示每个索引的终端数,并将其与 table2 合并以在输出中包含索引名称

select index,terminal=count(*) from terminal 
group by index

返回

index     terminal
--------- -----------
1          94
2          15

在 table2 中,我有一个与表“终端”中的索引匹配的索引,并且它也具有与索引相对应的名称。

例子:

select * from table2

回报:

index    name          lcmid        handle     
------   ------        --------     --------
1        nameofindex1  8            10
2        nameofindex2  12           27

我想计算与表 1 中的索引对应的终端数,然后将它们合并以将“nameofindexes”、lcmid 和句柄包含到结果中。我为听起来像个新手而道歉,但我边走边学。

任何帮助是极大的赞赏。

4

1 回答 1

0

嗯,你需要加入。也许:

SELECT t1.index, c=count(*), t2.name FROM terminal AS t1
    INNER JOIN table2 AS t2 ON t1.index = t2.index
    GROUP BY t1.index;

我有点生疏,所以查询可能不完全正确,但 JOIN 是你需要去的方向。

编辑

如评论中所示,这适用于 mysql,但不适用于 OP 的 SQL 风格。在 SELECT 和 GROUP BY 子句中将 t1.index 更改为 t2.index 有效:

SELECT t2.index, c=count(*), t2.name FROM terminal AS t1
    INNER JOIN table2 AS t2 ON t1.index = t2.index
    GROUP BY t2.index;
于 2014-02-06T21:47:02.440 回答