基于一对多,多对多关系的2个表计数

时间:2012-01-25 22:53:17

标签: mysql

我在Mysql中有一个查询,我在这里寻求你的输入。

我在mysql中有两个表T1和T2。

两者都包含一个公共id列,其值如下所示 -

T1 - 1, 2, 3, 3, 4, 4, 5

T2 - 1, 2, 3, 4, 4, 5

我正在尝试查询表T1,以下列方式输出 -

1, 2, 3, 4, 4, 5

如果在T1和T2之间存在一对一的关系,如值1,2,5,则从T1中选择它。如果T1和T2之间存在多对一关系,如T1中的值3,其中T2中有一个值,那么从T1中只选择一个值。 T1和T2中的值为4的多个,因为它来自T1。

1 个答案:

答案 0 :(得分:0)

SELECT T3.ID FROM (SELECT DISTINCT ID FROM T1) T3
INNER JOIN T2 ON T3.ID = T2.ID

它将T1的结果折叠成一个不同的集合,然后根据T2中的匹配对其进行重新膨胀。

相关问题