首先,我不确定这是否应该在 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 的存在适本地处理添加或删除选项。
- 仅当
memberid
为 null 时才允许某人“添加到列表”(即:第 2 项) - 如果
memberid
是not null(IE 项目 1 和 3)——提供“从列表中删除”选项。
关于sql - 如何比较两个查询的结果,并找到两者之间的匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681873/