2014-07-09 30 views
0

我試圖從一個連接到另一個表的表中獲取信息,但我只想要沒有重複數據的行。這是很難解釋所以這裏有一個例子:只接受沒有重複ID的行

table1 
----------  
id | data1 | data2 
1  | x | x 
2  | x | x 
3  | x | x 
4  | x | x 


table2 
---------- 
id | table1_id | data1 
1 | 1  | x 
2 | 2  | x 
3 | 2  | x 
4 | 3  | x 

在這種情況下,我想要的GET行1和4,從表2,而不是行2和3,因爲該表ID重複

+0

你的列名字面上是'table1.id'嗎? – tadman

+0

不,這將是table1_id – Alex

回答

3

你不」爲此需要第一張桌子。只需使用

select table1_id 
from table2 
group by table1_id 
having count(*) < 2 

得到table1_id。如果你需要完整的行,你可以使用

select * from table2 
where table1_id in 
(
    select table1_id 
    from table2 
    group by table1_id 
    having count(*) < 2 
) 

在MySQL中,你可以做,而不是

select * 
from table2 
group by table1_id 
having count(*) < 2 

但這featue是危險的。

+0

謝謝,完美的工作!不能相信我忘了團隊。 – Alex