sql >> データベース >  >> RDS >> Mysql

別の行と同じ値を持つすべての行を検索するためのMysqlクエリ

    結合を実行して、重複するレコードを回避できます。

    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
    

    出力

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


    1. ストアドプロシージャを使用せずにn回ループする

    2. WolframMathematicaでのMicrosoftAccessデータの使用

    3. INITCAP()–PostgreSQLで初期キャップに変換

    4. auto_incrementIDを使用しないSphinx