gpt4 book ai didi

sql - 使用 SQL 连接两个查询

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

SELECT test2.user_id,myTable1.myCol1 FROM testingtable2 test2 LATERAL VIEW 
explode(test2.purchased_item.product_id) myTable1 AS myCol1;

我使用上面的查询得到下面的输出结果。
  USER_ID    |     myCol1  
-------------+---------------
1015826235 220003038067

1015826235 300003861266

1015826235 140002997245

1015826235 200002448035

如果将查询的上述输出与以下 Table2 进行比较数据,然后是 Table2 的最后一行上述查询输出中缺少数据。

这是第二个Table2。
 BUYER_ID    |       ITEM_ID      |        CREATED_TIME
-------------+--------------------+--------------------------
1015826235 220003038067 2012-06-21 07:57:39

1015826235 300003861266 2012-06-21 21:11:12

1015826235 140002997245 2012-06-14 20:10:16

1015826235 200002448035 2012-06-08 22:02:17

*1015826235* *260003553381* *2002-01-30 23:12:18*

我需要基本上使用 JOIN 打印最后一行,所以 JOIN之后的输出应该是这样的在我上面写的查询和 Table2 之间数据。
*1015826235*     *260003553381*         *2002-01-30 23:12:18*

所以我需要做 JOIN在我写的上述查询和 Table2 之间data 并从上述查询数据中获取输出中不存在的所有数据。有什么建议吗?

只是添加myCol1ITEM_IDUSER_ID 是一样的和 BUYER_ID都是一样的。

P.S-我需要使用上面的查询来与 Table2 进行 JOIN。

最佳答案

正如@latr0dectus 指出的那样,您正在寻找 EXCEPT .在您的示例中,您可以使用 NOT IN 来实现这一点。 .以下查询将为您提供:

All the data from Table2 that is not in the above table

SELECT *
FROM Table2
WHERE ITEM_ID NOT IN
(
SELECT ITEM_ID
FROM AboveTable
)
更新:好吧,如果你想 JOIN两个表的任何方式,然后你可以做到这一点 LEFT JOIN .请注意,您必须添加 WHERE t1.myCol1 IS NULL为了只从Table2中获取上表中没有的所有数据:
SELECT * 
FROM Table2 t2
LEFT JOIN AboveTable t1 ON t2.ITEM_ID = t1.myCol1
WHERE t1.myCol1 IS NULL

DEMO
更新 2: SQL 标准指定 TableReference1 JOIN TableReference2 ON ...如下图1所述:
enter image description here
表引用可以是表名,如 Table2直接就像在我上面的查询中一样,或者一个连接表,或者一个 SELECT 语句,当你在你的列中发布时,它只选择一些特定的列。

1 张图片来自 SQL Queries for Mere Mortals

关于sql - 使用 SQL 连接两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372595/

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