gpt4 book ai didi

mysql - SQL 如果第一个表中不存在数据,则从第二个表中选择数据

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

我正在尝试在 NVD3 中操作堆积条形图的 JSON 数据,如果它不存在,则需要将键设置为 0,才能正常运行。

我使用以下 SQL 查询来获取 TABLE1 的数据

select POSITION, DOE, ID, COUNT(ID) AS COUNTER FROM TABLE1 WHERE
DOE BETWEEN '2014-12-02 00:00:01' AND '2014-12-02 23:59:59' AND TYPE = 'P' AND
POSITION LIKE 'POS%'

表1

POSITION      DOE           ID  COUNTER
POS1 02/12/2014 07:02 12 49
POS2 02/12/2014 07:17 104 17
POS3 02/12/2014 07:07 34 34
POS4 02/12/2014 07:07 21 54
POS5 02/12/2014 07:09 10 51
POS6 02/12/2014 08:42 3 24
POS7 02/12/2014 07:07 10 51
POS8 02/12/2014 07:01 41 46
POS9 02/12/2014 07:08 24 40

我创建了另一个名为 TABLE2 的表,其中包含 POSITION 和 COUNT 列,并将计数设置为 0。

这是表2的内容

POSITION COUNTER
POS1 0
POS2 0
POS3 0
POS4 0
POS5 0
POS6 0
POS7 0
POS8 0
POS9 0

我需要做的是,如果 TABLE1 中不存在位置 POS1,则显示 TABLE2 中的位置 POS1 和计数器 0。

因此我会得到一个像这样的表 -

POSITION      DOE           ID  COUNTER
POS1 0
POS2 02/12/2014 07:17 104 17
POS3 02/12/2014 07:07 34 34
POS4 02/12/2014 07:07 21 54
POS5 02/12/2014 07:09 10 51
POS6 02/12/2014 08:42 3 24
POS7 02/12/2014 07:07 10 51
POS8 02/12/2014 07:01 41 46
POS9 02/12/2014 07:08 24 40

我是 SQL 新手,所以我什至不知道这是否可行,我搜索了又搜索,但找不到解决方案。

任何建议将不胜感激。

最佳答案

我认为你想要一个左外连接:

select coalesce(t1.position, t2.position) as position,
t1.DOE, t1.ID, coalesce(t1.COUNTER, t2.COUNTER) as COUNTER
from table2 t2 left join
(select POSITION, DOE, ID, COUNT(ID) AS COUNTER
FROM TABLE1
WHERE DOE BETWEEN '2014-12-02 00:00:01' AND '2014-12-02 23:59:59' AND TYPE = 'P' AND
POSITION LIKE 'POS%'
) t1
on t2.position = t1.position;

关于mysql - SQL 如果第一个表中不存在数据,则从第二个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27248839/

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