如何在没有INNER JOIN的情况下进行SQL查询?

时间:2018-03-04 02:21:08

标签: sql-server database

我对Northwind数据库需要做的一些查询有疑问。我正在使用SQL Server Management Studio。我已经完成了所有查询的工​​作,但是我的教授说他不希望我们使用JOIN关键字而且我没有这样做就麻烦了。我真的不知道如何改写我所做的事情。

SELECT 
    Customers.ContactName, Orders.OrderID, Orders.OrderDate, 
    SUM(UnitPrice * (1 - Discount) * Quantity) AS TotalCost
FROM 
    (Customers 
INNER JOIN 
    Orders ON Customers.CustomerID = Orders.CustomerID) 
INNER JOIN 
    [Order Details] ON Orders.OrderID = [Order Details].OrderID
WHERE 
    ShipCountry = 'Spain'
GROUP BY 
    Customers.ContactName, Orders.OrderID, Orders.OrderDate;

非常感谢任何帮助。 :)

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT Customers.ContactName, Orders.OrderID, Orders.OrderDate, Sum(UnitPrice*
(1-Discount)*Quantity) AS TotalCost
FROM Customers, Orders , [Order Details]
where Customers.CustomerID = Orders.CustomerID
and Orders.OrderID = [Order Details].OrderID
and ShipCountry = 'Spain'
GROUP BY Customers.ContactName, Orders.OrderID, Orders.OrderDate;

答案 1 :(得分:0)

如果您不想使用Join,那么您也可以使用UNION连接两个表及其特定字段。你也可以在

上看到解决方案

https://www.codeproject.com/Questions/766095/Join-two-table-without-common-field

答案 2 :(得分:0)

您可以使用join子句在不使用where关键字的情况下进行加入,请参阅第一个回答here,这将满足您教授的要求