我有一张像;
的桌子表A
4c4fedf7 OMoy3Hoa
4c4fedf7 yiWDGB4D
broe4AMb A9rLRawV
broe4AMb mi9rLmZW
nhrtK9ce yEsBoYLj
rEEtK9gt A9rLRawV
rEEtK9gt mi9rLmZW
rEEtK9Hh A9rLRawV
rEEtK9Hh msBWz8CQ
我有A9rLRawV
,mi9rLmZW
之类的输入。我想输出像;
broe4AMb
rEEtK9gt
但是我得到了像
这样的输出broe4AMb
rEEtK9gt
rEEtK9Hh
我的查询就像;
SELECT DISTINCT prodid
FROM tablea
WHERE tagid IN ('A9rLRawV','mi9rLmZW');
这是SQL小提琴http://sqlfiddle.com/#!9/12223/2/0
我认为它需要自我加入。什么是最“有效”的方法?我该如何解决这个问题?
答案 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。