mysql запрашивают объект, не категоризированный для пользователя

у меня есть Пользователь с атрибутами User.id

у меня есть объект с Object.id, Object.name

у меня есть категория с Category.id, Category.name, Категорией user_id

у меня есть таблица ассоциации с category_id, object_id

пользователь объекты HABTM

объекты пользователи HABTM

категории принадлежат 1 пользователю

то, как я могу записать, что запрос для возврата списка всего Пользователя объектов имеет того Пользователя, не присвоило категорию? Следует иметь в виду, что другой Пользователь, возможно, присвоил тот же самый объект собственной категории.

1
задан Michael 11 May 2010 в 22:46
поделиться

1 ответ

SELECT o.*
FROM Objects o
JOIN (
    UsersObjects uo JOIN Users u ON (uo.user_id = u.id)
  ) ON (o.id = uo.object_id)
LEFT OUTER JOIN (
    ObjectsCategories oc JOIN Categories c ON (oc.category_id = c.id)
  ) ON (o.id = oc.object_id AND c.user_id = u.id)
WHERE u.id = :userid AND oc.object_id IS NULL;

NB: Я не тестировал это, и вы должны адаптировать этот синтаксис к любому ORM, который вы можете использовать.

2
ответ дан 3 September 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: