gpt4 book ai didi

amazon-athena - Amazon Athena LEFT OUTER JOIN 查询未按预期工作

转载 作者:行者123 更新时间:2023-12-04 12:01:13 26 4
gpt4 key购买 nike

我正在尝试在 Athena 中执行 left ourter join,我的查询如下所示:

SELECT customer.name, orders.price
FROM customer LEFT OUTER JOIN order
ON customer.id = orders.customer_id
WHERE price IS NULL;

每个客户在订单表中最多只能有一个订单,而订单表中根本没有订单的客户。所以我希望得到一些记录,其中客户表中有客户,而订单表中没有记录,这意味着当我这样做时 LEFT OUTER JOIN价格将为NULL。但是这个查询每次运行时都会返回 0。我分别查询了两个表,并且非常确定两个表中都有数据,但不确定为什么如果我删除 price IS NULL 会在它起作用的地方返回零.我也试过 price = ''price IN ('')他们都没有工作。这里有人有过类似的经历吗?或者我的查询有什么问题,我无法看到或识别?

最佳答案

看来您的查询是正确的。为了验证,我创建了两个 CTE,它们应该与您的 customer 匹配。和 orders表并针对它们运行您的查询。运行下面的查询时,它返回客户 3 Ted Johnson 的记录谁没有订单。

WITH customer AS (
SELECT 1 AS id, 'John Doe' AS name
UNION
SELECT 2 AS id, 'Jane Smith' AS name
UNION
SELECT 3 AS id, 'Ted Johnson' AS name
),

orders AS (
SELECT 1 AS customer_id, 20 AS price
UNION
SELECT 2 AS customer_id, 15 AS price
)

SELECT customer.name, orders.price
FROM customer LEFT OUTER JOIN orders
ON customer.id = orders.customer_id
WHERE price IS NULL;

我建议运行以下查询:
  • COUNT(DISTINCT id) FROM customers;
  • COUNT(DISTINCT customer_id) FROM orders;

  • 根据您看到的结果,我希望这些计数相匹配。也许您的系统正在 orders 中创建记录。每当使用 price 创建客户时的表的 0。

    关于amazon-athena - Amazon Athena LEFT OUTER JOIN 查询未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281866/

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