0

有一个表格,其中某些行成对出现,具有匹配的 GUID。只是想知道如何从表中选择所有数据,但前提是这些行作为一对具有匹配 GUID 的行存在。

4

3 回答 3

2

您可以使用这样的查询:

SELECT *
FROM yourtable
WHERE GUID IN (SELECT GUID FROM yourtable GROUP BY GUID HAVING COUNT(*)=2)

子查询将返回恰好出现两次的所有 GUID,外部查询将返回与这些 GUID 关联的所有行。

在此处查看小提琴。

于 2013-07-08T20:40:58.947 回答
2

尝试这样的事情:

SELECT t1.*
FROM
   table t1
 , table t2
WHERE
     t1.guid = t2.guid
 AND t1.id <> t2.id
;

表:你的表名

id:您知道的某些字段对于两行都不同

于 2013-07-08T20:41:44.987 回答
1

尝试

SELECT t.* 
  FROM Table1 t JOIN
(
  SELECT guid
    FROM Table1
   GROUP BY guid
  HAVING COUNT(*) = 2
) q ON t.guid = q.guid

这是SQLFiddle演示

于 2013-07-08T20:41:45.200 回答