Sql 如果满足表中同一列中的两个条件,则返回ID

Sql 如果满足表中同一列中的两个条件,则返回ID,sql,Sql,我想让在cletterdesc专栏中回答“是”和“一级-二级”的成员。我尝试了这个问题,但不幸的是: SELECT * FROM ( SELECT * FROM tbl_answer as a where a.nqid in ('16') and a.choice in('29','30','31','32','35','36') union SELECT * FROM tbl_answer as b where b.nqid=

我想让在cletterdesc专栏中回答“是”和“一级-二级”的成员。我尝试了这个问题,但不幸的是:

SELECT *
FROM (
    SELECT *
    FROM tbl_answer as a 
    where a.nqid in ('16')
      and a.choice in('29','30','31','32','35','36')
  union
    SELECT *
    FROM tbl_answer as b 
    where b.nqid='15'
      and b.choice='21'
) as t
nmemberid的答案应满足两个条件,即nqid=15且其选择=21和nqid=16且其选择=[29,30,31,32,35,36]


标记的行应仅为结果,并且基于nmemberid它应是唯一的。因此,查询应该只返回两个结果,即180和174。

要获得没有id重复的行,可以使用GROUPBY指令。这样会丢失信息—其他列中的值将以未定义的方式被破坏。

查看结果,返回的每一行都与一个查询谓词匹配。您似乎完全收到了请求的行。问题是什么?如果结果集中缺少行,您必须向我们显示这些行。您标记的行是什么?预期结果?您在查询中未使用cletterdesc。是的,标记的行应仅为结果,并且基于nmemberid,它应是唯一的。因此,查询应该只返回两个结果,即180和174。@Basilevs-Yah,它只是基础。nmemberid的答案应满足两个条件,即nqid=15且其选择=21和nqid=16且其选择=[29,30,31,32,35,36]