Sql MS-Access中的子查询
我需要创建一个SQL语句,该语句将获得以下信息: 多个表中的ISBN、数量、OrderTotal、FirstName、LastName、PhoneNumber和StreetAddress 以下是我迄今为止提出的两个问题,它们为我提供了所需的信息: 客户信息Sql MS-Access中的子查询,sql,ms-access,Sql,Ms Access,我需要创建一个SQL语句,该语句将获得以下信息: 多个表中的ISBN、数量、OrderTotal、FirstName、LastName、PhoneNumber和StreetAddress 以下是我迄今为止提出的两个问题,它们为我提供了所需的信息: 客户信息 SELECT c.CustomerID, c.FirstName, c.LastName, c.PhoneNumber, a.StreetAddress FROM Customers AS c, Address AS a WHERE c.Cu
SELECT c.CustomerID, c.FirstName, c.LastName, c.PhoneNumber, a.StreetAddress
FROM Customers AS c, Address AS a
WHERE c.CustomerID = a.CustomerID;
SELECT o.CustomerID, o.OrderTotal, i.ISBN, i.Quantity
FROM Orders AS o, OrderItems as i
WHERE o.OrderID = i.OrderID;
订单信息
SELECT c.CustomerID, c.FirstName, c.LastName, c.PhoneNumber, a.StreetAddress
FROM Customers AS c, Address AS a
WHERE c.CustomerID = a.CustomerID;
SELECT o.CustomerID, o.OrderTotal, i.ISBN, i.Quantity
FROM Orders AS o, OrderItems as i
WHERE o.OrderID = i.OrderID;
组合查询这不起作用
如何将前两个查询合并为一个查询,以提供与第三个查询相同的信息?在
OrderInfo
中没有CustomerId
字段。你需要全部三张桌子
SELECT c.FirstName, c.LastName, c.PhoneNumber, c.StreetAddress,
oi.OrderTotal, oi.ISBN, oi.Quantity
FROM (Customers as c INNER JOIN
Orders AS o
ON c.CustomerID = o.CustomerID
) INNER JOIN
OrderItems as oi
ON o.OrderID = oi.OrderID;
您还需要学习正确的join
语法和on
子句。where
子句中的隐式连接过时,表达能力较差,更容易出错
SELECT c.CustomerID, c.FirstName, c.LastName, c.PhoneNumber,
a.StreetAddress,
o.CustomerID, o.OrderTotal,
i.ISBN, i.Quantity
FROM Customers AS c, Address AS a, Orders AS o, OrderItems as i
WHERE o.OrderID = i.OrderID;
AND c.CustomerID = a.CustomerID
AND c.CustomerID = o.CustomerID;
尝试将其作为一个大查询,而不是两个查询,然后将它们组合起来。这将把您的所有四个表连接在一起。到底什么“不起作用”?