我有一個mysql問題。我有兩張這樣的表,我需要聯合在一起。INNER JOIN DISTINCT與MySQL
表:
ID otherid2
1 | 1
2 | 1
3 | 2
4 | 2
表2:
otherid otherid2
1 | 1
2 | 1
3 | 2
4 | 2
我使用:
SELECT id,otherid FROM table INNER JOIN table2 ON table.otherid2=table2.otherid2
這給了我:
ID otherid
1 | 1
1 | 2
2 | 1
2 | 2
3 | 3
3 | 4
4 | 3
4 | 4
正如你所看到的,我得到了id的重複,因爲在table2中不是唯一的頂點。我需要的是以某種方式讓INNER JOIN DISTINCT,我只希望結果如下。不重複。
這就是我想要的:
ID otherid
1 | 1
2 | 1
3 | 3
4 | 3
我可以用簡單的方法做到這一點嗎?
根據連接中的哪些行決定放棄什麼是基礎?例如?對於Id 4,有2行,3和4的頂點。你是用什麼方法排除了第4個頂點的行,並且選擇了第3個頂點? – InSane 2010-10-04 11:18:44
我不明白你如何得到3 | 3或4 | 3,除非前兩個表中沒有顯示值。另外,根據你在這裏展示的內容,我不知道你是如何得到2 | 2的。 – 2010-10-04 11:20:52
嘗試使用子查詢(請參閱http://dev.mysql.com/doc/refman/5。5/EN/join.html)。不是非常優化,但非常有效。 – 2010-10-04 11:28:19