Я пытаюсь получить список всех записей, которые не существуют в таблице соединений.Активная запись, если запись таблицы соединений не существует
Модели - Пользователь, Игра и MarkedGame, где пользователи могут отмечать игры как играемые. Это отношения многие ко многим:
User > MarkedGame < Game
То, что я хочу, это список всех игр, которые не помеченных пользователем.
Я знаю, что я мог бы сделать два отдельных запросов и вычитать их:
Game.all - current_user.games
Но мне не нравится, что это оставляет меня с массивом, а не активный объект Запись отношения. Плюс, похоже, должен быть более эффективный способ сделать это.
Если нет активного способа записи данных, возможно, существует способ SQL? Мой сырой SQL не особенно силен, поэтому любая помощь в этом будет оценена.
Спасибо.
Отлично! Спасибо. Так это в основном говорит, где идентификатор игры не находится в подзапросе игровых идентификаторов? –
Да, и это только один запрос, поэтому он довольно быстр, если у вас есть правильные индексы в вашем db. – Iceman
Отлично, спасибо еще раз. Другой ответ поташина также отлично работает, есть ли у вас мнение о том, какое лучшее решение? –