私はいくつかのSQLコマンドを実行すると結果が変わる理由を理解していないため、W3の学校にいて、自分の脳を傷つけていました。joinステートメントのANDとWHEREの相違点
SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
where LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;
出力結果は次のとおりです:
は、これはW3の学校の一例であるので、
Davolio 29私の質問ですが、私は
SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
and LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;
出力結果にコードを変更したときです:Davolio 29 Fuller 196
ここで何が起こっているのですか、適切なe 196年の注文のフラーがANDに変更されたときになぜそれが表示されるのかについての説明、なぜ違いがありますか?
参加条件2番目のクエリの中に括弧がありません。現在のものは次のとおりです: 'Orders.EmployeeID = Employees.EmployeeID and LastName = 'Davolio' OR LastName = 'Fuller'';このクエリでは、姓が「Fuller」の場合、条件全体が真となります。 'Orders.EmployeeID = Employees.EmployeeID (LastName = 'Davolio' OR LastName = 'Fuller') – Lamak