2012-01-25 117 views
0

我在Mysql中有一個查詢,我在這裏尋求您的輸入。基於一對一,多對多,多對多的關係計算2個表

我在mysql中有2個表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之間存在多個一的關係,如在T2中具有一個值的T1中的值3,則從T1中只選擇一個值。 T1和T2中的值4中的許多很多,因爲它是從T1中選擇的。

+0

對不起,我誤解了最初的問題。一對多關係如何,其中'T1'包含'6','T2'包含'6','6'? –

+0

不用擔心:-)在一對多關係中,從T1中選擇唯一的值6。隨機似乎已經破解下面。 –

+0

你可能想重申一下,作爲你的問題的一部分。另外,@ Random的答案在這種情況下不起作用。 –

回答

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

它將T1的結果摺疊爲一個不同的集合,然後根據T2中找到的匹配對其重新充氣。

+0

太棒了!謝謝。完美的作品。非常感激。 –