我有两张表如下:
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
非常感谢任何帮助!
答案 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
这将为您提供的示例数据提供正确的输出。