Как сравнить результаты двух запросов и найти совпадения между ними? - PullRequest
0 голосов
/ 10 сентября 2010

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

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

items(itemId, itemName)

users_items(itemId,memberId)

1 Ответ

4 голосов
/ 10 сентября 2010

Может ли товар принадлежать более чем одному каталогу?Если это так, вы не можете сказать, какой каталог на основе таблицы 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 равно ноль (IE: элемент 2)
  • , если memberid равно не равно (элементы IE 1 и 3) -укажите опцию «удалить из списка».
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...