gpt4 book ai didi

mysql - 加入匹配记录并在不匹配时创建组合

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

我正在尝试使用另外两个创建一个新表。我想在合并“值”列时创建记录的所有记录组合。我想要另一列告诉我值(value)来自哪里像这样的东西。:

答:

Day    Month   Random1    Random2    value1 
01 Jan AA XX 12
24 Mar BB YY 34
13 Feb CC ZZ 7

乙:

Day    Month   value2
03 Jan 16
24 Mar 2

我想在日和月加入他们,但是如果没有行匹配,我希望它创建一个包含所有组合的行。

我想要一个表格如下:

C:

Day    Month   Random1    Random2    value    Type
01 Jan AA XX 12 value1
24 Mar BB YY 34 value1
13 Feb CC ZZ 7 value1
03 Jan AA XX 16 value2
03 Jan AA YY 16 value2
03 Jan AA ZZ 16 value2
03 Jan BB XX 16 value2
03 Jan BB YY 16 value2
03 Jan BB ZZ 16 value2
03 Jan CC XX 16 value2
03 Jan CC YY 16 value2
03 Jan CC ZZ 16 value2
24 Mar AA XX 2 value2
24 Mar AA YY 2 value2
24 Mar AA ZZ 2 value2
24 Mar BB XX 2 value2
24 Mar BB YY 2 value2
24 Mar BB ZZ 2 value2
24 Mar CC XX 2 value2
24 Mar CC YY 2 value2
24 Mar CC ZZ 2 value2

我的 sql 查询异常复杂,我相信有一种简单的方法可以做到这一点。(我实际上是在使用 sqldf() 在 R 中编写此查询,我正在寻找 sql 建议,但对替代方案持开放态度。)

最佳答案

看起来好像结果集包括集合 A,加上由 Random1 的唯一值、Random2 的唯一值和集合 B 组合而成的集合。

我会用这个

SELECT Day, Month, Random1, Random2, value1, 'value1' AS type
FROM tableA
UNION
SELECT tableB.Day, tableB.Month, r1.Random1, r1.Random2, tableB.value2, 'value2'
FROM tableB
JOIN (SELECT DISTINCT Random1
FROM tableA) AS r1
JOIN (SELECT DISTINCT Random2
FROM tableA) AS r2;

关于mysql - 加入匹配记录并在不匹配时创建组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37754046/

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