仅返回表

时间:2017-07-21 13:22:58

标签: sql database h2db

我是sql的新手,我遇到了问题。 我有一个通话记录表,其中包含两列AnumberBnumber。如果有任何数字调用,则会在表中添加一个新行,其中Anumber为Source,Bnumber为Destination。

我已经给出了两个Anumber值(3217913664,3006307180)现在我必须找到Bnumber中的所有值(由Anumber调用)

假设我的表是:

ANUMBER        BNUMBER
-------        --------
3217913664     3006307180
3217913664     3212026005
3006307180     3212026005
3006307180     3212026007
3006307180     3212026008
3006307180     3212026009
3217913664     3212026009

现在我想从Bnumber中提取value(3212026005 and 3212026009),因为这两个数字都是由给定的数字调用的。所以我基本上只需提取那些被所有给定数字调用的数字。

我的英语不太好,但我想我解释了我的问题。我知道如何实现这种情况?

2 个答案:

答案 0 :(得分:1)

这是一种方法:

select bnumber
from t
where anumber in (3217913664, 3006307180)
group by bnumber
having min(anumber) < max(anumber);

如果行没有重复项,那么使用count(*) = 2是另一种选择。

如果您要测试的anumber超过2 count(distinct anumber) = n,请使用n,其中inchangeName:function(value){ return( this.setState({ name: value })) }, 列表中的值数。< / p>

答案 1 :(得分:0)

你可以尝试这个:

select  Bnumber
from    yourtable
group by Bnumber
having COUNT(Bnumber) = (SELECT COUNT(*) FROM (SELECT DISTINCT Anumber FROM yourtable) AS T)

这是一个通用的。如果在表中插入另一个Anumber,查询仍然有效。 只有一个警告:也许这不是解决问题的最佳方法,但我现在无法在其他查询中思考。也许以后我会尝试优化查询。