Mysql query to find all rows that have the same values as another row

前端 未结 4 683
后悔当初
后悔当初 2020-12-11 06:03

My database contains rows that generally look like:

PersonItem
__________
id
personId
itemId

╔════╦══════════╦════════╗
║ ID ║ PERSONID ║ ITEMID ║
╠════╬═══         


        
4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-11 06:30

    You can do joins to get around with duplicate records.

    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
    
    • SQLFiddle Demo

    OUTPUT

    ╔════╦══════════╦════════╗
    ║ ID ║ PERSONID ║ ITEMID ║
    ╠════╬══════════╬════════╣
    ║  1 ║      123 ║    456 ║
    ║  2 ║      123 ║    456 ║
    ║  5 ║      123 ║    456 ║
    ║  4 ║      444 ║    456 ║
    ║  7 ║      444 ║    456 ║
    ╚════╩══════════╩════════╝
    

提交回复
热议问题