gpt4 book ai didi

sql - 连接 2 个表,其中 table2 包含每个 table1 行的多行

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

要么是我想太多了,要么是我的 SQL 技能不足。我需要将两列添加到第二个表中的表中,但这些值位于第二个表中的单独行中。什么 SQL 可以做到这一点?这是一个例子。 transnum 是表之间的公共(public)列。

TABLE1
------
transnum id
9287 006
5782 004
5819 001

TABLE2
------
transnum code value
9287 A 198.38
9287 B 928.57
9287 C 568.25 -- code C values not needed
5782 A 219.53
5782 B 591.11
5782 C 852.32
5819 A 109.92
5819 B 251.81
5819 C 295.12

DESIRED RESULT
--------------
transnum id valueA valueB
9287 006 198.38 928.57
5782 004 219.53 591.11
5819 001 109.92 251.81

编辑:语法。

最佳答案

您可以使用不同的条件两次加入同一个表:

SELECT t1.TransNum, t1.id, t2_A.value "ValueA", t2_B.value "ValueB"
FROM Table1 t1
INNER JOIN Table2 t2_A ON t2_A.transnum = t1.transnum AND t2_A.code = 'A'
INNER JOIN Table2 t2_B ON t2_B.transnum = t1.transnum AND t2_B.code = 'B'

根据您正在执行的操作,如果存在仅存在以下数据的情况,您可能需要使用 LEFT JOIN 而不是 INNER JOIN代码之一。如果这样做,您可能还需要对 select 子句中的值使用 COALESCE() 函数,以便在没有匹配记录时显示 NULL 以外的内容。

关于sql - 连接 2 个表,其中 table2 包含每个 table1 行的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746263/

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