gpt4 book ai didi

sql - UNION ALL 是获取此数据的正确方法吗?

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

我有一个带有用户表和附属表的 Postgres 9.3 数据库。

用户表列

+----+-------+
| | |
+----+-------+
| id | email |
+----+-------+

附属栏目

+----+------------------+------------------+--------+
| id | referred_user_id | referrer_user_id | amount |
+----+------------------+------------------+--------+

我尝试了以下查询:

select
users.email as referred_email,
affiliates.amount
from affiliates
JOIN users ON affiliates.referred_user_id = users.id

UNION ALL

select
users.email as referrer_email,
users.id
from affiliates
JOIN users ON affiliates.referrer_user_id = users.id

它生成包含列的表格:

+----------------+--------+
| referred_email | amount |
+----------------+--------+

但我想要一对一的表格,例如:

+----------------+----------------+--------+
| referrer_email | referred_email | amount |
+----------------+----------------+--------+

我实际上是用 referrer_emailreferred_email 替换每个 *_user_id,然后加上相应的 amount。我能做些什么不同的事情?我认为 UNION ALL 将所有列连接在一起。

最佳答案

I thought UNION ALL joined all the columns together.

不,UNION ALL 连接行。如果您想加入列,您需要使用JOIN

可能看起来像这样:

select
rer.email as referrer_email,
red.email as referred_email,
affiliates.amount
from affiliates
JOIN users rer ON affiliates.referrer_user_id = rer.id
JOIN users red ON affiliates.referred_user_id = red.id

关于sql - UNION ALL 是获取此数据的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210148/

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