SELECT
ORDER_ITEM.OrderID,
ORDERS.OrderDate
FROM ORDER_ITEM LEFT JOIN ORDERS
ON ORDER_ITEM.OrderID = ORDERS.OrderID
LEFT JOIN PEOPLE
ON ORDERS.CustomerID = PEOPLE.PeopleId AND ORDERS.EmployeeID = PEOPLE.PeopleId
where PEOPLE.FirstName + PEOPLE.LastName = 'April Roberts'


我的结果输出0行。不知道我在做什么错。

最佳答案

确保表中有符合您条件的数据。例如您已通过名为April April Roberts的人员下订单。如果您使用LEFT JOIN,即使您没有该人的任何命令,查询也将返回所有结果。因此,如果您只希望与该人相关联的订单,则可以使用INNER JOIN或简单地JOIN。

SELECT oi.OrderID, o.OrderDate
FROM ORDER_ITEM oi
JOIN ORDERS o ON oi.OrderID = o.OrderID
JOIN PEOPLE p ON o.CustomerID = p.PeopleId
WHERE p.FirstName = 'April' AND p.LastName = 'Roberts'

关于mysql - 需要创建一个查询来显示April Roberts的订单。我只需要输出以显示OrderID和OrderDate。这是我到目前为止的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47005597/

10-13 09:52