这是交易,我有这个SQL查询
SELECT *
FROM Customers AS C, Orders AS O, Orderlines AS OL
WHERE C.CustomerID = O.CustomerID AND O .OrderID = OL.OrderID
在关系代数中是
Σ(C.CustomerID=O.CustomerID AND O.OrderID=OL.OrderID)(Customers x Orders x Orderlines) .
如何将这种3路笛卡尔积转换为“连接关系”?
提前多多感谢。
如果我对关系代数部分有误,请纠正我。
答案 0 :(得分:2)
似乎非常直接......
SELECT c.*, o.*, ol.*
FROM Customers c
INNER JOIN Orders o ON c.CustomerId = o.CustomerID
INNER JOIN OrderLines ol ON o.OrderId = ol.OrderId
我建议不要从每个表中选择*
,特别是考虑到重复的列名。
答案 1 :(得分:1)
SELECT *
FROM Customers AS C
JOIN Orders AS O ON C.CustomerID = O.CustomerID
JOIN Orderlines AS OL ON O.OrderID = OL.OrderID