2015-06-10 144 views
-1

我创建了两个具有以下记录的表。Sqllite查询重复记录

CREATE TABLE ForgeRock 
    (`id` int,`sta` int, `productName` varchar(7), `description` varchar(55)); 

INSERT INTO ForgeRock 
    (`id`,`sta`, `productName`, `description`) 
VALUES 
    (1, 0,'OpenIDM', 'Platform for building enterprise provisioning solutions'), 

(2,0, 'OpenAM', 'Full-featured access management'), 
(3,0, 'OpenDJ', 'Robust LDAP server for Java'); 


CREATE TABLE ForgeRock1 
(`id` int,`sta` int, `productName` varchar(7), `description` varchar(55)); 

INSERT INTO ForgeRock1 
(`id`,`sta`, `productName`, `description`) 

价值观

(1, 2,'hii', 'Platform for building enterprise provisioning solutions'), 
(2,0, 'OpenAM', 'Full-featured access management'), 
(3,0, 'OpenDJ', 'Robust LDAP server for Java'); 

我想联盟的两个表,但希望有STA重复ID记录= 2

SELECT id,sta 
    FROM ForgeRock 
    GROUP BY id 
    UNION 
    SELECT id, sta 
    FROM ForgeRock1 
    GROUP BY id 

结果:

id sta 1 0 2 0 3 0 1 2

预期结果:

id sta 1 2 2 0 3 0

回答

0

执行分组的UNION,并使用MAX()来选择行,以输出每个组:

SELECT id, MAX(sta) AS sta 
FROM (SELECT id, sta 
     FROM ForgeRock 
     UNION 
     SELECT id, sta 
     FROM ForgeRock1) 
GROUP BY id 
ORDER BY id