Фильтрация устаревших элементов из таблицы - PullRequest
0 голосов
/ 27 июня 2018

мое приложение построено с использованием ruby ​​на рельсах, при поддержке базы данных mysql Имеет 2 таблицы (модели) - product (id, имя, созданный_at, updated_at и т. Д.) И product_details (идентификатор, product_type, product_id, expires_on, созданный_at, updated_at и т. колонка).

Мне нужно выбрать только те активные записи ИЛИ product_ids из модели / таблицы продукта, которые удовлетворяют одному из следующих критериев - сведения о продукте для данного конкретного продукта устарели / устарели (столбец expires_on присутствует в таблице product_details) или там нет записи для этого продукта в таблице product_details вообще (допустимый сценарий в моем случае использования)

Обратите внимание, что product_id - это внешний ключ, который ссылается на product (id)

Любая помощь очень ценится. Заранее спасибо! :)

1 Ответ

0 голосов
/ 27 июня 2018

Предполагая, что:

class Product < ApplicationRecord
  has_one :product_detail
end

и

class ProductDetail < ApplicationRecord
  belongs_to :product
end

Вы можете использовать простой однострочный запрос для извлечения просроченных товаров или товаров без подробностей:

Product.select { |p| p.product_detail.nil? || p.product_detail.expires_on <= Date.today }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...