mysql数据库的sql解决方法
mysql数据库的sql
有张表中有个id和类型指段,id可重复,但是id和类型的组合不重复,类型只有1,2,,有些只有一个类型,我现在要查出所有id相同但是只有一个类型的记录,比如id有1,1,2,类型分别是1,2,1,现在我要找到id是2的
------解决思路----------------------
------解决思路----------------------
有张表中有个id和类型指段,id可重复,但是id和类型的组合不重复,类型只有1,2,,有些只有一个类型,我现在要查出所有id相同但是只有一个类型的记录,比如id有1,1,2,类型分别是1,2,1,现在我要找到id是2的
------解决思路----------------------
SELECT T1.id
FROM TB T1
WHERE NOT EXISTS(SELECT 1 FROM TB T2 WHERE T1.id=T2.id AND T1.类型<>T2.类型)
GROUP BY T1.id
------解决思路----------------------
假设表的结构如下:
CREATE TABLE t1
(
id int
, typecode smallint
)
SQL语句:
SELECT
t1.*
FROM t1
JOIN (
SELECT
id
FROM t1
GROUP BY id
HAVING COUNT(*) = 1
) u ON t1.id = u.id