我想要一个查询从 table2 中选择超过 4 个 AccountId 重复,在 table1 中具有不同的名称

Posted

技术标签:

【中文标题】我想要一个查询从 table2 中选择超过 4 个 AccountId 重复,在 table1 中具有不同的名称【英文标题】:I want a query to select more than 4 AccountId repetitions from table2 having distinct name in table1 【发布时间】:2011-11-02 20:10:28 【问题描述】:

我想要一个查询从表 2 中选择超过 4 个 AccountId 重复,在 table1 中具有不同的名称

以下是表结构:

table1                             |       Table2
ID   AccountNumber  Name           |       ID       AccountNumber AccountID
1     12345         John Jeff      |        1          12345        A467T
1     12345         Patrick Jones  |        1          12345        A467T

IDAccountNumber 在两个表上都相同

Table1 有名称 Table2 有 AccountID

【问题讨论】:

【参考方案1】:

这是一个查询,用于查找具有 4 个以上不同名称的 AccountID:

select  t2.AccountID
from    Table1 as t1
join    Table2 as t2
on      t1.AccountNumber = t2.AccountNumber
        and t1.ID = t2.ID
group by
        t2.AccountID
having  count(distinct t1.Name) > 4

如果这不是您要查找的内容,请澄清问题!例如,您可以添加所需的输出。

编辑:在回复您的评论时,您可以使用子查询查询 ID 和 Numbers:

select  distinct 
        ID
,       AccountNumber
,       AccoutnID
from    Table2
where   AccountNumber in 
        (
        ... place query from above here ...
        )

【讨论】:

感谢 Andomar,它正在工作,但是如果我想将 AccountNumber 和 ID 作为输出的一部分呢 如果每个 AccountNumber 只有一个 AccountID,您可以group by t2.AccountID, t2.AccountNumber, t2.ID 并选择所有三列。 @Bayo Alen:那么您必须返回 Table2 以找出 ID...一种方法是子查询,添加示例。

以上是关于我想要一个查询从 table2 中选择超过 4 个 AccountId 重复,在 table1 中具有不同的名称的主要内容,如果未能解决你的问题,请参考以下文章

JOIN 与从许多表中选择

如何从“TABLE1 AND TABLE2”创建 SELECT 查询

从另一个查询插入记录

在 1 中混合 3 个 sql 查询

为啥我不能从我的查询中选择?

使用 Union All 优化 SQL 查询