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
team_i
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')