gpt4 book ai didi

mysql - 空表导致所有 SELECT 字段均为 NULL

转载 作者:行者123 更新时间:2023-11-29 13:39:18 26 4
gpt4 key购买 nike

我有一个表,chat,它控制从所有其他表读取的消息。对于新用户,我正在插入新值。

INSERT INTO chat VALUES (1,aaa,bbb,ccc)
SELECT
MAX(chatA.postOrder) AS aaa,
MAX(chatB.postOrder) AS bbb,
MAX(chatC.postOrder) AS ccc
FROM `chatA`, `chatB`, `chatC`
WHERE 1

对于 ChatBChatC,postOrder 存在并且它们都有值。一切正常。问题是,有时聊天是空的(在本例中为 chatA)。发生这种情况时,bbbccc 变为 NULL。如果我删除此行 MAX(chatA.postOrder) AS aaa,,这些值仍然为 NULL。

我被困在这里,无法找到解决此问题的方法。在选择字段中进行的更改(例如 IFNULL(chatA.postOrder,0) AS aaa,)对结果没有影响。看来 FROM 字段中的 chatA 导致 bbbccc 的结果为 NULL。

编辑:格式

最佳答案

为什么不尝试联合所有

SELECT MAX(aaa) AS aaa, MAX(bbb) AS bbb, MAX(ccc) AS ccc from (
SELECT MAX(IFNULL(chatA.postOrder,0)) AS aaa, 0 as bbb, 0 AS ccc FROM `chatA`
UNION ALL
SELECT 0 AS aaa, MAX(IFNULL(chatB.postOrder,0)) AS bbb, 0 AS ccc FROM `chatB`
UNION ALL
SELECT 0 AS aaa, 0 AS bbb, MAX(IFNULL(chatC.postOrder,0)) AS ccc FROM `chatC`)
AS derived_table;

这更合适,因为您并不试图“连接”表。我假设这些值不会是负数,如果它们是负数,那么 0 就不是一个好数字,可能是一个永远不会出现在结果中的负数。

关于mysql - 空表导致所有 SELECT 字段均为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305920/

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