繁体   English   中英

MySQL检查相同ID的多行

[英]Mysql check multiple rows of same id

我将从桌子开始:

id    |   name    |   label_id  | package_id
 1        Fred         23742        1056
 2        Fred         23742        1351
 3        Jack         43743        1057
 4        Jack         43743        1352
 5        Bob          13523        1056
 6        Anna         58232        1056
 7        Anna         58232        1057

因此,每个人都有自己的标签ID,但共享package_id。 我只希望所有具有(1056或1057)和(1351或1352或1353)包裹ID的人

 1        Fred         23742        1056
 2        Fred         23742        1351

 3        Jack         43743        1057
 4        Jack         43743        1352

 6        Anna         58232        1056
 7        Anna         58232        1353

但排除像鲍勃那样只有一行的人

 5        Bob          13523        1056

如果需要的话,我会尝试详细说明,因为这很难解释。

我相信您正在寻找这样的东西。 这将选择package_id在您列出的数字中的所有行,并排除表中只有一行的人。

select * from <table-name> 
where package_id in (1056, 1057, 1351, 1352, 1343)
and name in (
    select name from <table-name>
    group by name
    having count(*) > 1
);

SQL小提琴

MySQL 5.6模式设置

CREATE TABLE mytable
    (`id` int, `name` varchar(4), `label_id` int, `package_id` int)
;

INSERT INTO mytable
    (`id`, `name`, `label_id`, `package_id`)
VALUES
    (1, 'Fred', 23742, 1056),
    (2, 'Fred', 23742, 1351),
    (3, 'Jack', 43743, 1057),
    (4, 'Jack', 43743, 1352),
    (5, 'Bob', 13523, 1056),
    (6, 'Anna', 58232, 1056),
    (7, 'Anna', 58232, 1353)
;

查询1

select *
from mytable
where name in (
    select name
    from (
        select distinct name 
        from mytable
        where package_id in (1056, 1057)
        union all
        select distinct name 
        from mytable
        where package_id in (1351, 1352, 1353)
   ) as result
   group by name
   having count(*) > 1)

结果

| id | name | label_id | package_id |
|----|------|----------|------------|
|  1 | Fred |    23742 |       1056 |
|  2 | Fred |    23742 |       1351 |
|  3 | Jack |    43743 |       1057 |
|  4 | Jack |    43743 |       1352 |
|  6 | Anna |    58232 |       1056 |
|  7 | Anna |    58232 |       1353 |

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM