首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有任何匹配的情况下,连接是如何工作的

问在没有任何匹配的情况下,连接是如何工作的
EN

Stack Overflow用户
提问于 2016-09-09 06:58:27
回答 1查看 26关注 0票数 0

我有这样的疑问:

代码语言:javascript
复制
UPDATE users u 
LEFT JOIN events e ON e.author_id = u.id
SET u.events = 0, e.seen = 1
WHERE  u.id = ?

我的查询更新users表,即使这个条件... ON e.author_id = u.id不匹配任何行。现在,当users表中没有任何匹配的行时,我还需要更新events。我可以通过RIGHT JOIN做到这一点。但是我想知道我可以将RIGHT JOIN和LEFT JOIN混合在一起吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 07:03:32

您不能在MySQL中这样做,因为MySQL不支持FULL OUTER JOIN。

但为什么不直接运行两个update语句:

代码语言:javascript
复制
UPDATE users u 
    SET u.events = 0
    WHERE  u.id = ?;

UPDATE events e 
    e.seen = 1
    WHERE e.author_id = ?;

如果您认为事务语义很重要,并且您的存储引擎支持事务,则可以将它们包装在一个事务中。

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

https://stackoverflow.com/questions/39401369

复制
相关文章

相似问题

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