【发布时间】:2021-12-03 17:07:18
【问题描述】:
问题
我使用 VBA,我想从 Oracle 数据库中导入所有可用于特定 employeeID 的数据。不幸的是,所需的数据包含在四个不同的表中。以w3schools-editor 为例,我对Shippers、Orders、Customers 和Products 表感兴趣:
Name: Shippers
_____________
ShipperID | ShipperName | ...
_____________
Name: Orders
_____________
OrderID | EmployeeID |ShipperID ...
...
_____________
Name: OrderDetails
_____________
OrderID | ProductID | ...
...
_____________
Name: Products
_____________
ProductID | ProductName | ...
...
_____________
对于Orders中的特定EmployeeID,我希望得到一个表格的表格:
Name: Goal
_____________
ShipperName | ProductID | ProductName
...
_____________
到目前为止我尝试了什么:
Select Shippers.ShipperName, Orders.OrderID, OrderDetails.ProductID
From Orders
Inner Join OrderDetails On OrderDetails.OrderID = Orders.OrderID
Inner Join Shippers On Shippers.ShipperID = Orders.ShipperID
Select Distinct Orders.OrderID, OrderDetails.ProductID
From OrderDetails
Inner Join Orders On
Orders.OrderID = OrderDetails.OrderID And Orders.EmployeeID = 5
但在这两种情况下我都会出错。
我也试过用union
Select ShipperName From Shippers
Inner Join Orders On Orders.ShipperID = Shippers.ShipperID
Union
Select ProductID From OrderDetails
Inner Join Orders On Orders.OrderID = OrderDetails.OrderID
然后我得到一个表,其中一列包含原始两列中的条目。
我没有设法进一步接近Goal
有什么建议吗?
PS:我希望现在更清楚了。
【问题讨论】:
-
请提供minimal reproducible example 和您实际工作和不工作的代码;您发布的代码中有非法且不一致的名称,因此我们甚至无法知道这是否与您实际运行的代码接近。
-
SQL
UNION而不是JOINS应该做你想做的事。