gpt4 book ai didi

sql - 空值内连接

转载 作者:IT老高 更新时间:2023-10-28 23:49:17 33 4
gpt4 key购买 nike

我不确定我是否在逻辑上犯了错误。

如果我有一个查询并且我使用空值进行内部连接,我会始终得不到结果还是会忽略连接并成功?例子

user { id PK, name NVARCHAR NOT NULL, banStatus nullable reference }

如果我写 u.banStatus 我将不会收到任何行?

select * from user as u
join banstatus as b on u.banStatus=b.id
where id=1

最佳答案

如果连接为 null,则不会获取该行,因为 NULL 不能等于任何内容,即使是 NULL。

如果您将其更改为 LEFT JOIN,那么您将获得该行。

内部连接:

select * from user as u
join banstatus as b on u.banStatus=b.id

1, '1', 1, 'Banned'

使用左连接:

select * from user as u
left join banstatus as b on u.banStatus=b.id

1, '1', 1, 'Banned'
2, 'NULL', , ''

使用这个测试数据:

CREATE TABLE user (id int, banstatus nvarchar(100));
INSERT INTO user (id, banstatus) VALUES
(1, '1'),
(2, 'NULL');

CREATE TABLE banstatus (id int, text nvarchar(100));
INSERT INTO banstatus (id, text) VALUES
(1, 'Banned');

关于sql - 空值内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123006/

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