gpt4 book ai didi

mysql - 给定 "tableA Left Join tableB where tableB.col2=1"但 col2 可能为 Null,那么如何处理呢?

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:55 25 4
gpt4 key购买 nike

我有两张 table

create tableA (
idA int primary key,
idB foreign key references tableB(idB)
);

create tableB (
idB int primary key,
type int Not Null
);
TableAidA - idB---------1   - 2TableBidB - type----------1   - 13   - 3

Then, sql1

select * from tableA a left join tableB b on a.idB=b.idB where b.type=1 // shows no result

sql2

select * from tableA a left join (select * from tableB where type=1) b on a.idB=b.idB // shows 1 result

但很多人说第二个不是一个好的做法,他们建议在语句末尾使用 WHere,但它可能会有 NULL 问题,因为在 sql1 中

那么如何在语句末尾使用Where,又能处理LEFT JOIN中的NULL问题呢?

最佳答案

您必须在外部连接的 ON 子句中包含此条件:

select * 
from tableA a
left join tableB b
on a.idB=b.idB AND b.type=1

如果您在 WHERE 子句中对联接表使用条件,您会将 OUTER JOIN 隐式更改为 INNER JOIN。

关于mysql - 给定 "tableA Left Join tableB where tableB.col2=1"但 col2 可能为 Null,那么如何处理呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172648/

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