首页 > 解决方案 > 查询以查找比损失更多的胜利

问题描述

uid 指的是唯一的用户 id,下面是他们赢/输的比赛次数

比赛获胜

uid wins
1   4
3   3

匹配损失

uid losses
2   4
3   1
4   2

我想确定赢得的比赛比输的多的uid。我不确定如何做到这一点,因为一些没有输掉比赛的用户不会出现在比赛失去关系中,并且与胜利相同

这就是我会做的,但不会显示一些

SELECT wins.uid
FROM Matcheswon w, matchesLost l
WHERE w.uid = l.uid AND w.wins > l.losses

标签: sqlpostgresql

解决方案


我想你想要一个外部连接:

SELECT w.uid
FROM Matcheswon w LEFT JOIN
     matchesLost l
     ON w.uid = l.uid
WHERE w.wins > l.losses OR l.losses IS NULL;

这将损失表中的任何行都视为0损失。


推荐阅读