SQLのスキルを向上させるために練習クエリを実行しています(私は初心者です)、Northwindデータベースの使用に関する助けが必要なこの問題が発生しました。要求されたクエリは次のとおりです。SQLの比較クエリ
が同じ都市の顧客に販売されている従業員の従業員とその都道府県の名前を指定します。
は、私は、このされたために書いたもの:
USE Northwind;
SELECT DISTINCT FirstName, LastName, e.City
FROM Employees e
INNER JOIN Orders o ON e.EmployeeID = O.EmployeeID
INNER JOIN Customers c ON o.CustomerID = c.CustomerID
INNER JOIN Customers ON c.City = e.City
WHERE e.City = ANY(SELECT Customers.City FROM Customers);
私は6人の従業員を返されていますが、私は、彼らが正しいと私は私のWHERE文が同様に間違ったものであると信じていることを確認していません。
基本的に私の質問は正しい結合文を使用しているのですが、どのようにWHERE文で結果をフィルタリングするのですか?特定のレコードを他のレコードとどのように比較するのかが正確にはわかりません。 Javaのバックグラウンドから来て、私は、個々の "オブジェクト"(レコード)を別の "オブジェクト"の特定のフィールドでチェックできるfor-loopsに慣れています。この場合、Employeesテーブルの各レコードのCity属性をCustomersテーブルのレコードのCity属性で確認する方法が不思議です。すべてのアドバイスは感謝しています、ありがとう!
Customersテーブルに対して2回参加しているので、結合が正しくありません。 「INNER JOIN customers ON」を「AND」に変更してWHERE句を取り除くと、あなたはうまくいくはずです。 – Welbog