gpt4 book ai didi

Mysql 有条件或无条件连接表

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

我最近遇到了很多问题,如果能找到解决方案就太好了。假设我们有两个表 Table1Table2。有没有办法在有条件或无条件的情况下对这些表进行连接

例如:

Select * from Table1 t1 left join Table2 t2 on t1.column = t2.column where t2.anothercolumn in (v1,v2,v3) and ...; 

Select * from Table1 t1 left join Table2 t2 on t1.column = t2.column where t2.anothercolumn in ('') and ....;

因此,在这两种情况下,我希望能够进行连接,如果我在 t2 列上指定一个条件,那么它会向我显示与该条件相关的结果,否则会显示所有内容。

目前,如果我将 in('') 放入,它不会显示任何内容。

提前致谢。

最佳答案

当您执行左连接时,第二个表上的条件将放入ON子句中:

Select *
from Table1 t1 left join
Table2 t2
on t1.column = t2.column and
t2.anothercolumn in (v1, v2, v3) and ...;

第一个表中的条件位于 where 子句中。这似乎是一条神秘的规则。但如果您了解底层机制,它就很有意义。

左连接保留 first 表中的所有行,无论 on 子句的计算结果是否为 true。因此,第一个表上的条件对结果没有影响(因为 left join 无论如何都会保留第一个记录)。

另一方面,您的版本将左联接转换为内联接,因为当第二个表上的值为NULLwhere 子句正在处理它们。

关于Mysql 有条件或无条件连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44367963/

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