如何比较两个查询的结果,并找到两者之间的匹配?

时间:2010-09-10 02:08:34

标签: sql mysql coldfusion

首先,我不确定这是否应该在Coldfusion或MySQL中完成。

我查询了检索目录中项目的项目。我有第二个查询从用户的列表中检索项目。我的目标是在输出第一个查询(项目目录)时查明某个项目是否已存在于用户列表中。

items(itemId, itemName)

users_items(itemId,memberId)

1 个答案:

答案 0 :(得分: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 = ?

...将返回一个结果(我省略了itemname):

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

如果您看到NULL,则会告诉您该成员尚未订购该项目。

在Coldfusion中,您只需根据值或NULL的存在来设置页面以适当地处理添加或删除选项。

  • memberid null 时,只允许某人“添加到列表”(IE:第2项)
  • 如果memberid 非空 (IE项目1& 3) - 提供“从列表中删除”选项。