Как сравнить результаты двух запросов и найти совпадения между ними?

0

Прежде всего, я не уверен, что это должно быть сделано в Coldfusion или MySQL.

У меня есть запрос элементов, которые извлекают элементы в каталоге. У меня есть второй запрос, который извлекает элементы из списка пользователей. Моя цель - выяснить, присутствует ли элемент в списке пользователей при выводе первого запроса (каталог элементов).

items(itemId, itemName)

users_items(itemId,memberId)
  • 0
    Каков ваш ожидаемый результат? Поскольку кто-то может (и будет) заказывать более одного и того же элемента - это приведет к дублированию при присоединении к таблице ITEMS .
  • 0
    Нет, я намерен показать кнопку добавления в список или удалить из списка ... поэтому я явно не хочу, чтобы кто-либо добавлял один и тот же элемент более одного раза.
Теги:
coldfusion

1 ответ

4
Лучший ответ

Может ли элемент принадлежать более чем одному каталогу? Если это так, вы не можете определить каталог, основанный на таблице USERS_ITEMS, чтобы правильно отобразить список.

В противном случае, я думаю, вы могли бы использовать LEFT JOIN:

   SELECT i.itemid,
          i.itemname,
          ui.memberid
     FROM ITEMS i
LEFT JOIN USERS_ITEMS ui ON ui.itemid = i.itemid
                        AND ui.memberid = ?

..., который вернет результат, как (я пропустил имя элемента):

itemid   memberid
--------------------
1        1234
2        NULL
3        1234

Где вы видите NULL, сообщает, что элемент не заказал элемент.

В Coldfusion вам просто нужно настроить страницу для правильной обработки опции добавления или удаления на основе наличия значения или NULL.

  • разрешает кому-либо "добавлять в список", когда memberid имеет значение null (IE: элемент 2)
  • если memberid не null (элементы IE 1 и 3) - установите параметр "удалить из списка".
  • 0
    Извините, я нахожу это немного сложным для отслеживания ... элемент может принадлежать более чем одному пользователю, и у пользователя может быть много элементов ... мои таблицы - это пользователи (userid), items (itemid), users_items ( userid, itemid) ... Я попытаюсь разобрать то, что вы мне дали, но я должен сказать, что немного борюсь ...
  • 1
    @Mel: Я обновил, чтобы предоставить набор результатов, и немного обновил алгоритм. Я не знаю Coldfusion, или я бы предоставил фрагмент.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню