获取具有相同ID的行,并且必须合并某些值

时间:2013-11-19 14:39:12

标签: sql select

我有两张表如下:

TableA
------------
a_id
a_attribute


TableB
------------
b_id
b_attribute

数据:

a_id    a_attribute
1         1
1         2
1         3
2         4
2         5
2         6


b_id    b_attribute
1         1
1         2
1         3
2         2
2         3
3         4
3         5
3         6

我正在试图弄清楚如何匹配它,所以如果b_id的b_attribute值为1,2,3,它将匹配a_id 1,如果b_attribute的值为4,5,6则应匹配a_id 2。 / p>

在这种情况下,我希望输出为:

b_id    a_id
1       1
3       2

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

如果共享属性的数量是固定的,则可以加入属性列上的表,并且可以对count进行过滤。类似的东西:

SELECT b.b_id, a.a_id FROM TableA a
INNER JOIN TableB b ON a.a_attribute = b.b_attribute
GROUP BY a.a_id, b.b_id
HAVING COUNT(*) = 3

这将为您提供的示例数据提供正确的输出。