如何选择列中具有相似条目的行? MySQL的

时间:2015-12-09 09:02:18

标签: mysql join

我有一张像;

的桌子

表A

tablea

4c4fedf7    OMoy3Hoa
4c4fedf7    yiWDGB4D
broe4AMb    A9rLRawV
broe4AMb    mi9rLmZW
nhrtK9ce    yEsBoYLj
rEEtK9gt    A9rLRawV
rEEtK9gt    mi9rLmZW
rEEtK9Hh    A9rLRawV
rEEtK9Hh    msBWz8CQ

我有A9rLRawVmi9rLmZW之类的输入。我想输出像;

broe4AMb
rEEtK9gt

但是我得到了像

这样的输出
broe4AMb
rEEtK9gt
rEEtK9Hh

我的查询就像;

SELECT DISTINCT prodid
FROM tablea
WHERE tagid IN ('A9rLRawV','mi9rLmZW');

这是SQL小提琴http://sqlfiddle.com/#!9/12223/2/0

我认为它需要自我加入。什么是最“有效”的方法?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:-1)

select a.prodid from(
SELECT  prodid
FROM tablea
group by prodid, tagid
having tagid IN ('A9rLRawV') or tagid in('mi9rLmZW')) a
group by prodid
having count(*) = 2

答案 1 :(得分:-2)

如果我得到你想要的数据,请试试这个:

SELECT DISTINCT prodid
FROM tablea
WHERE tagid = 'mi9rLmZW' AND tagid = 'A9rLRawV';

根据我对你的情况的理解,你想要使用mi9rLmZW和A9rLRawV的tagid获得所有产品。通过使用WHERE tagid IN ...您也选择了rEEtK9Hh。你需要使用AND才能使用tagid和mi9rLmZW和A9rLRawV获得prodid。