我有一个Postgres 9.3数据库与用户和分支表。UNION ALL是获取这些数据的正确方法吗?
用户表列
+----+-------+
| | |
+----+-------+
| 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 |
+----------------+----------------+--------+
在那里我基本上每个替代与*_user_id
一个referrer_email
和referred_email
,然后在相应的套结amount
。我能做些什么不同?我以为UNION ALL
加在一起的所有列。
'联盟(全部)'其序列的'SELECT'子句中的列相匹配。它放弃了你在第二个'SELECT'中给列的名字。 – trincot