首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql外部联接-返回不总是在相关表中有条目的完整记录列表

mysql外部联接-返回不总是在相关表中有条目的完整记录列表
EN

Stack Overflow用户
提问于 2016-04-19 21:05:15
回答 1查看 16关注 0票数 0

这是mysql v. 4.x..。我确信这是一个新手问题,但由于某些原因,我无法弄清楚sql是否能让它正常工作。以下是相关表格的近似值:

代码语言:javascript
复制
Item
---
ItemID

等。

代码语言:javascript
复制
ItemPerson
--------
PersonID

ItemID

TimeAccessed

假设我的ID是1,2,3,4,5

假设我在ItemPerson:{'JohnDoe',1,'12:00PM'}中有1张唱片

我有一个PersonName作为输入。我希望返回所有项目的列表,包括访问该项目的时间。如果给定的PersonName没有访问该项,我希望此时为NULL。

我试过以下几种方法:

代码语言:javascript
复制
SELECT i.*, ip.TimeAccessed
FROM Item i LEFT OUTER JOIN ItemPerson ip
ON i.ItemID = ip.ItemID
WHERE (ip.PersonName = 'JohnDoe' OR ip.PersonName IS NULL)

我得到了“JohnDoe”的预期结果..。返回所有项目,ItemID 1有一个时间。

如果我将'JohnDoe‘改为'JaneDoe',我只得到ItemID的2-5,但我希望我的查询返回所有条目,每次都为NULL。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-19 21:08:15

在这种情况下,左联接可能是很棘手的。您将希望将person条件移到ON子句中;否则,您将得到与此人相关的项,或者根本没有人。(从逻辑上讲,抛开优化器不谈,在联接之后出现的位置)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36729440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档