我的数据库包含通常如下所示的行:
PersonItem
__________
id
personId
itemId
??????????????????????????
? ID ? PERSONID ? ITEMID ?
??????????????????????????
? 1 ? 123 ? 456 ?
? 2 ? 123 ? 456 ?
? 3 ? 123 ? 555 ?
? 4 ? 444 ? 456 ?
? 5 ? 123 ? 456 ?
? 6 ? 333 ? 555 ?
? 7 ? 444 ? 456 ?
??????????????????????????
Run Code Online (Sandbox Code Playgroud)
我需要找到所有实际记录,其中PersonId和ItemId列匹配数据库中这两列的其他记录....
| 1 | 123 | 456
| 2 | 123 | 456
| 5 | 123 | 456
| 4 | 444 | 456
| 7 | 444 | 456
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这些结果?
您可以进行连接以处理重复记录.
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT PersonID, ItemID, COUNT(*) totalCount
FROM TableName
GROUP BY PersonID, ItemID
HAVING COUNT(*) > 1
) b ON a.PersonID = b.PersonID AND
a.ItemID = b.ItemID
Run Code Online (Sandbox Code Playgroud)
OUTPUT
??????????????????????????
? ID ? PERSONID ? ITEMID ?
??????????????????????????
? 1 ? 123 ? 456 ?
? 2 ? 123 ? 456 ?
? 5 ? 123 ? 456 ?
? 4 ? 444 ? 456 ?
? 7 ? 444 ? 456 ?
??????????????????????????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16621 次 |
| 最近记录: |