仅接受没有重复ID的行

时间:2014-07-09 18:13:16

标签: mysql sql

我正在尝试从一个连接到另一个表的表中获取信息,但我只想要没有重复数据的行。这很难解释,所以这是一个例子:

  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  

在这种情况下,我希望从表2中获取行1和4,而不是第2行和第3行,因为表ID重复

1 个答案:

答案 0 :(得分: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

但这个特点很危险。