gpt4 book ai didi

MySQL SELECT 不为空时

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

我正在尝试进行一个使用 3 个表的查询。第一个表 table1 用于存储 table2 和 table3 的 id 值以及一些其他数据。在某些情况下,table2 或 table3 中都没有存储值,有些情况涉及其中之一,有些情况同时涉及两者。

问题是,当 table2 或 table3 中都没有值时,SQL 会尝试查找 NULL 值,如下所示:

SELECT table1.id, table2value, table3value
FROM table1, table2, table3
WHERE table1value1 = table2.id AND table1value2 = table3.id;

因此,在此查询中,如果 table1value1 或 table1value2 为 NULL,则查询将不起作用,因为它显然不是有效链接。所以我想知道如何才能只找到存在的值。

最佳答案

改用INNER JOIN。它将表与所有表中现有数据的条件连接在一起。否则该行将不会被返回。

SELECT table1.id, table2.value, table3.value
FROM table1
INNER JOIN table2
ON table1.value1 = table2.id
INNER JOIN table3
ON table1.value2 = table3.id;
<小时/>

但是,如果您只需要这两行中的一行具有现有数据,您可以这样做:

SELECT table1.id, table2.value, table3.value
FROM table1
LEFT JOIN table2
ON table1.value1 = table2.id
LEFT JOIN table3
ON table1.value2 = table3.id;
WHERE table2.id IS NOT NULL OR table3.id IS NOT NULL

关于MySQL SELECT 不为空时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276023/

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