У меня есть база данных MySQL с двумя таблицами (упрощенных по этому вопросу):
кино столбцов таблицы: id
, title
, duration
, description
, created_at
, updated_at
аренды столбцов таблицы: id
, movie_id
, status
, created_at
, updated_at
Возврат только уникальный идентификатор таблицы от MySQL присоединиться к
статус аренды либо «Выдан» или «ВЕРНУЛСЯ», так что фильм доступен, если он либо не имеет связанную аренды, или все связанные с ним реном tals имеют статус «ВОЗВРАЩЕН». Как запросить доступные фильмы? Сейчас у меня есть это:
SELECT rentals.id,rentals.status,movies.*
FROM `movies`
LEFT OUTER JOIN rentals ON movies.id = rentals.movie_id
AND movies.kiosk_id = rentals.kiosk_id
WHERE (`movies`.kiosk_id = 1
AND (rentals.id is null or rentals.status != 'CHECKED OUT'));
Проблема заключается в том, этот запрос возвращает несколько записей для фильма, если он был проверен несколько раз, так что мой ORM дает мне дублировать объекты кино. Есть ли способ указать, что мне нужен только уникальный movie.id
? Должен ли я иметь некоторую другую схему базы данных? Или я должен разобраться в нем программно (похоже, это было бы слишком медленно)?
, единственная проблема с вашим ответом заключалась в том, что мне нужно было добавить «id» после второго выбора, но после этого он работал хорошо , благодаря! – aaronstacy