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

标签 sql mysql coldfusion

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

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

items(itemId, itemName)

users_items(itemId,memberId)

最佳答案

一个项目可以属于多个目录吗?如果是这样,您将无法根据 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 的地方,告诉您该成员(member)尚未订购该商品。

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

  • 仅当 memberidnull 时才允许某人“添加到列表”(即:第 2 项)
  • 如果 memberidnot null(IE 项目 1 和 3)——提供“从列表中删除”选项。

关于sql - 如何比较两个查询的结果,并找到两者之间的匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681873/

相关文章:

c# - GetSchema 方法可以异步工作吗?

MYSQL使用parentid和id获取所有id

php - 为什么我在帖子中输入内容时我的博客帖子条目是空的?

coldfusion - 从 ColdFusion Fusebox 5.5 noxml 转换

sql - Postgres : How to join multiple tables?

mysql - 多个不同 ID 的总和计算问题

sql - 对我的开发模式中的这些额外表有什么想法吗?

MySQL 的 DECIMAL 顺序不正确?

c# - 如何在ColdFusion中重写此.Net C#?

email - cfmail 中最多可以包含多少个电子邮件地址