SQL - 查找具有类似值的记录

时间:2010-02-22 23:21:12

标签: sql

我有一个名为“任务”的表。该表包含以下字段

  • ID
  • TypeID
  • 说明

如何查找具有多个TypeID任务的所有任务?我没有要查询的TypeID。相反,我只想列出具有跨多个任务使用的TypeID的任务。我不知道该怎么做。

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

SELECT
    *
FROM
    Tasks
WHERE TypeID IN
    (SELECT TypeID FROM Tasks
     GROUP BY TypeID HAVING COUNT(*) > 1)

答案 1 :(得分:1)

使用:

  SELECT t.description
    FROM TASKS t
GROUP BY t.description
  HAVING COUNT(t.typeid) > 1

答案 2 :(得分:1)

以下是两种不使用group by的方法:

# faster solution
SELECT A.*
FROM Tasks A,
     Tasks B
WHERE B.id != A.id AND B.TypeID = A.TypeID

OR

SELECT A.*
FROM Tasks A,
WHERE EXISTS ( SELECT 1 FROM Tasks B WHERE B.id != A.id AND B.TypeID = A.TypeID)