我有两个表,我将列出表名和相关字段:
PLAYERS:
playerid
STATS:
statsid
playerid
year
每次玩家在游戏中累积统计数据时,都会在stats
表中放一行并记录年份。
现在,我想得到players
表中所有在2016年及以上没有记录任何统计数据的球员的名单。
我尝试了LEFT JOIN,但并不真正理解我在做什么,无法使其发挥作用。这是我尝试过的事情之一,别笑
SELECT * FROM `players` LEFT JOIN `stats` ON players.playerid = stats.playerid where count(*) = 0 and stats.year >= 2016
您似乎不知道存在的语法,例如:
select *
from players p
where not exists (select 1
from stats s
where s.playerid = p.playerid
and s.year >= 2016)
显示了那些年不在统计表中的球员,易于理解和记忆。