Sql 查找具有多个不同列值的记录
给定带有列Id文本、主键和位置文本的表t1,如下所示Sql 查找具有多个不同列值的记录,sql,sqlite,Sql,Sqlite,给定带有列Id文本、主键和位置文本的表t1,如下所示 +-------+-----------+ | Id | place | +-------+-----------+ | abcde | Santori | | bcdef | Krypt | | cdefg | Bali | | defgh | Bangkok | | abcde | Colombo | +-------+-----------+ 我需要找出具有多个不同位置的ID的记录。在上述示
+-------+-----------+
| Id | place |
+-------+-----------+
| abcde | Santori |
| bcdef | Krypt |
| cdefg | Bali |
| defgh | Bangkok |
| abcde | Colombo |
+-------+-----------+
我需要找出具有多个不同位置的ID的记录。在上述示例中,输出应为
+-------+-----------+
| Id | place |
+-------+-----------+
| abcde | Santori |
| abcde | Colombo |
+-------+-----------+
我认为你可以:
SELECT ID, PLACE FROM T1 as A
WHERE A.ID IN
(SELECT ID FROM T1 AS B
GROUP BY ID
HAVING count(*) > 1
)
我认为你可以:
SELECT ID, PLACE FROM T1 as A
WHERE A.ID IN
(SELECT ID FROM T1 AS B
GROUP BY ID
HAVING count(*) > 1
)
我将使用:
我将使用:
在子查询中,您需要获取不同位置的计数和ID,然后使用外部查询获取所有记录
在子查询中,您需要获取不同位置的计数和ID,然后使用外部查询获取所有记录
到目前为止,您是否尝试过任何方法来解决此问题?如果id的值重复,则id不能是主键。到目前为止,您尝试过任何方法来解决此问题吗?如果id的值重复,则id不能是主键。
select * From T1
where T1.ID in
(select ID from T1
group by ID
having count(distinct PLACE) > 1
)