为了账号安全,请及时绑定邮箱和手机立即绑定

如何返回在MySQL中具有相同列值的行

如何返回在MySQL中具有相同列值的行

紫衣仙女 2019-06-12 15:29:44
如何返回在MySQL中具有相同列值的行让我们考虑下表-ID Score1  952  1003  884  1005  73我完全是一个SQLNoob,但是如何返回ID 2和4的分数呢?所以它应该返回100,因为它在ID 2和4中都有它的功能。
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这是一个“集内集”查询的示例。我建议使用having子句,因为它是最灵活的方法。

select scorefrom tgroup by scorehaving sum(id = 2) > 0 and -- has id = 2
       sum(id = 4) > 0     -- has id = 4

这是在用分数来聚合。然后是having条款(sum(id = 2)计算出每分有多少个“2”。第二个是数多少“4”。只返回“2”和“4”的分数。


查看完整回答
反对 回复 2019-06-12
?
跃然一笑

TA贡献1826条经验 获得超6个赞

SELECT scoreFROM tWHERE id in (2, 4)HAVING COUNT(*) = 2 /* replace this with the number of IDs */

这将选择ID 2和4的行。这个HAVING子句确保我们找到了这两行;如果两者都缺少,计数将小于2。

这假设id是一个独特的列。


查看完整回答
反对 回复 2019-06-12
?
慕村9548890

TA贡献1884条经验 获得超4个赞

select Scorefrom tbl awhere a.ID = 2 -- based off Score with ID = 2
    --include Score only if it exists with ID 6 also
    and exists (
        select 1
        from tbl b        where b.Score = a.Score and b.ID = 6
    )
    -- optional?  ignore Score that exists with other ids as well
    and not exists (
        select 1
        from tbl c        where c.Score = a.Score and c.ID not in (2, 6)
    )


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 725 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信