我试图从一个连接到另一个表的表中获取信息,但我只想要没有重复数据的行。很难解释,所以这里有一个例子:
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 重复
最佳答案
您不需要第一个表。只需使用
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
但是这个特性很危险。
关于mysql - 只接受没有重复 ID 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660997/