gpt4 book ai didi

mysql - mysql 中的 NULL 拒绝

转载 作者:行者123 更新时间:2023-11-29 01:42:25 25 4
gpt4 key购买 nike

今天我正在阅读关于外连接的 MySQL 文档,在那里我发现当外连接完成时某些条件被 null 拒绝

T1 LEFT JOIN T2 ON T1.A=T2.A

诸如此类的条件被 null-rejected:(无法从文档中理解 original docs )

T2.B IS NOT NULL,
T2.B > 3,
T2.C <= T1.C,
T2.B < 2 OR T2.C > 1

谁能用简单的话解释一下。

  1. 为什么拒绝这些条件
  2. 如果某些条件被拒绝,对查询产生的输出有何影响。

最佳答案

这个关于“null-rejected”条件的讨论只是关于优化比他们需要的更复杂的查询;它根本不会改变查询的行为。

考虑这个查询:

select * from table1
left outer join table2 on table1.id=table2.id
where table2.id is not null

这个查询被写成一个外连接,但它也丢弃了 table2 为 null 的任何行(null-rejected 条件where 中的条件排除任何空行的子句)。

此查询中的 where 子句拒绝来自外部连接的任何“外部行”。这意味着它根本不是真正的外部连接;它可以重写为:

select * from table1
inner join table2 on table1.id=table2.id

MySQL 识别这种情况并自动优化简化查询,而不是执行所有额外的执行外部联接和丢弃行的工作。

关于mysql - mysql 中的 NULL 拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16982845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com