DEV Community

Query Filter
Query Filter

Posted on

compare6

SELECT location, table_name
FROM (
    SELECT 'ONLY_IN_US_1' AS location, t1.name AS table_name, 1 AS sort
    FROM sysobjects t1
    WHERE t1.uid  = (SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_1')
      AND t1.type = 'U'
      AND NOT EXISTS (SELECT 1 FROM sysobjects t2 
                      WHERE t2.uid=(SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_2')
                        AND t2.type='U' AND t2.name=t1.name)

    UNION ALL

    SELECT 'ONLY_IN_US_2', t2.name, 2
    FROM sysobjects t2
    WHERE t2.uid  = (SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_2')
      AND t2.type = 'U'
      AND NOT EXISTS (SELECT 1 FROM sysobjects t1 
                      WHERE t1.uid=(SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_1')
                        AND t1.type='U' AND t1.name=t2.name)

    UNION ALL

    SELECT 'IN_BOTH', t1.name, 3
    FROM sysobjects t1
    WHERE t1.uid  = (SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_1')
      AND t1.type = 'U'
      AND EXISTS (SELECT 1 FROM sysobjects t2 
                  WHERE t2.uid=(SELECT uid FROM sysusers WHERE name='GLOBAL_COMET_US_2')
                    AND t2.type='U' AND t2.name=t1.name)
) x
ORDER BY sort, table_name;
Enter fullscreen mode Exit fullscreen mode

Top comments (0)