Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql MS-Access中的子查询_Sql_Ms Access - Fatal编程技术网

Sql MS-Access中的子查询

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

我需要创建一个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.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;
尝试将其作为一个大查询,而不是两个查询,然后将它们组合起来。这将把您的所有四个表连接在一起。

到底什么“不起作用”?