假设我有以下内容:
表_a
| id | date | order_id | sku | price |
--------------------------------------------
| 10 | 2016-08-18 | 111 | ABC | 10 |
表_b
| id | date | order_id | description | type | notes | valid |
-------------------------------------------------------------------
| 50 | 2016-08-18 | 111 | test | AA | | true |
我想从两个表中获取所有列,因此结果表如下所示:
| id | date | order_id | sku | price | description | type | notes | valid |
---------------------------------------------------------------------------------
| 10 | 2016-08-18 | 111 | ABC | 10 | | | | |
---------------------------------------------------------------------------------
| 50 | 2016-08-18 | 111 | | | test | AA | | true |
我尝试过联合:
(
SELECT *
from table_a
where table_a.date > Date('today')
)
UNION
(
SELECT *
from table_b
where table_b.date > Date('today')
)
但我得到一个:
ERROR: each UNION query must have the same number of columns
如何解决这个问题/是否有其他方法可以做到这一点?
最佳答案
或者,您可以直接加入它们,而不是 UNION:
SELECT *
FROM table_a A
JOIN table_b B USING ( id )
WHERE A.date > TIMESTAMP 'TODAY'
AND B.date > TIMESTAMP 'TODAY';
查看更多选项:https://www.postgresql.org/docs/9.5/static/queries-table-expressions.html#QUERIES-JOIN
关于postgresql - 选择两个表中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025695/