Oracle SQL - 从两个表中选择
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6455871/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Oracle SQL - Select from two tables
提问by user812418
I have two tables which are exactly the same layout, but have different data (one is current, one is history).
我有两个布局完全相同的表格,但有不同的数据(一个是当前数据,一个是历史数据)。
How do I pull information from both tables?
如何从两个表中提取信息?
PSUDO SQL:
伪 SQL:
SELECT
T.TRANS_QUAN,
P.PONO, D.ID
FROM
TRANSLOG T, (select * from PO, PO_HIST) P, (SELECT * FROM PO_DETAIL, PO_DETAIL_HIST) D
WHERE
D.PO_ID = P.ID
AND T.SOURCE_ID = D.ID
When I try to actually run that I get "column ambiguously defined"
当我尝试实际运行时,我得到“列定义不明确”
回答by Chandu
You can UNION clause.
您可以使用 UNION 子句。
Try:
尝试:
SELECT
T.TRANS_QUAN,
P.PONO, D.ID
FROM
TRANSLOG T,
(
SELECT * FROM PO
UNION
SELECT * FROM PO_HIST
) P,
(
SELECT * FROM PO_DETAIL
UNION
SELECT * FROM PO_DETAIL_HIST
) D
WHERE
D.PO_ID = P.ID
AND T.SOURCE_ID = D.ID
回答by Benoit
(select * from PO, PO_HIST) P
This subquery might make a cross join of tables that share a common column name.
此子查询可能会对共享公共列名的表进行交叉联接。
Maybe you want:
也许你想要:
Select t.trang_quan
, p.pono
, d.id
from translog t
inner join po_detail d
on d.id = t.source_id
cross join po_detail_hist
inner join po p
on p.id = d.po_id
cross join po_hist p2
Are you sure you want cross joins?
您确定要交叉连接吗?