有一个表格,其中某些行成对出现,具有匹配的 GUID。只是想知道如何从表中选择所有数据,但前提是这些行作为一对具有匹配 GUID 的行存在。
问问题
3040 次
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 回答