gpt4 book ai didi

sql 查询 : column by id multiple times

转载 作者:行者123 更新时间:2023-11-29 14:09:18 26 4
gpt4 key购买 nike

这里是 SQL 新手。我在创建 select 语句时遇到了麻烦。

我有一个表 REF 有一个 id 和一个值 v;

+-----+----+
| REF | |
+-----+----+
| ID | V |
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
| 5 | 50 |
| 6 | 60 |
| 7 | 70 |
+-----+----+

在第二个表 IND 中,我有三列带有 id 值;

+-----+-----+-----+
|IND | | |
|-----|-----|-----|
| ID1 | ID2 | ID3 |
| 1 | 2 | |
| | 3 | 4 |
| 5 | | |
| 6 | | 7 |

我想在三列(表 RES)的每一列中相应地接收 REF.v 的值; ID 是不同的,它们之间没有重叠。

+-----+-----+-----+
| RES | | |
+-----+-----+-----+
| ID1 | ID2 | ID3 |
| 10 | 20 | |
| | 30 | 40 |
| 50 | | |
| 60 | | 70 |
+-----+-----+-----+

最佳答案

您可以查询您的 IND 表,使用三个子查询来检索链接到已用 id 的值

试试这个:

SELECT
(SELECT V FROM REF WHERE REF.ID = IND.ID1) AS V_ID1,
(SELECT V FROM REF WHERE REF.ID = IND.ID2) AS V_ID2,
(SELECT V FROM REF WHERE REF.ID = IND.ID3) AS V_ID3
FROM IND

更新

关于两个建议的解决方案(LEFT OUTER JOINsSUBQUERIES)

我试过 Postgres 9.6 引擎下的 Sql Fiddle。

时间相同,但 LEFT OUTER JOIN 的执行计划更复杂

可以看到SqlFiddle SUBQUERIESSqlFiddle LEFT OUTER JOINs

关于sql 查询 : column by id multiple times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48564453/

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