Finding all records without associated ones

后端 未结 4 1959
野性不改
野性不改 2020-12-06 01:49

I have a teams table and a players table and I\'m wanting to find all teams that do not have players associated with them. The players table is associated via a team_i

4条回答
  •  粉色の甜心
    2020-12-06 02:25

    It may perform better doing a left join:

    SELECT
    teams.*
    FROM teams
    LEFT JOIN players ON (teams.id = players.team_id)
    WHERE
    players.team_id IS NULL
    

    Or using ARel (thanks to JasonKing's comment):

    Team.includes(:players).where('players.team_id IS NULL')
    

提交回复
热议问题