私はテーブルEmpTraits
と従業員のリストとその特性を持っています。したがって、この表には各従業員とすべての特性(従業員は特性が異なる限り複数回リストされる可能性があるため、この表には同じ従業員と同じ特性の2つのレコードが含まれていません)がリストされます。特定の5つの特性を持つ従業員のリストを取得するにはどうすればよいですか?
`Table: EmpTraits
+------------+---------+
| EmployeeID | TraitID |
+------------+---------+`
のは、私はちょうど従業員Xは、(5の合計である)を持つすべての特徴を示していますEmpXTraits
(従業員X上の特徴)と呼ばれるVIEWを持っているとしましょう。この2つのテーブルから
`Table: EmpXTraits
+------------+---------+
| EmployeeID | TraitID |
+------------+---------+
| X + 1 +
| X + 2 +
| X + 3 +
| X + 4 +
| X + 5 +
+------------+---------+`
、私はVIEW EmpXTraits
に示した特性のすべてを持っているすべてのEmployeeIDsの一覧を照会しようとしています。
これまでの質問はありますが、問題は、従業員Xと同じ特徴を持つ従業員を示していることです。他の従業員に類似した特性がすべてある場合は、表示されません。
`
SELECT DISTINCT EmpTraits.EmployeeID
FROM EmpTraits INNER JOIN EmpXTraits ON
EmpTraits.EmployeeID = EmpXTraits.EmployeeID
WHERE EmpTraits.TraitID IN (
SELECT EmployeeID
FROM EmpXTraits
);`
私は従業員Xから少なくとも特徴を持っているすべての従業員を表示するには、このクエリを変更することができますどのように任意のアイデアは、(彼らがいる限り、彼らは従業員Xが持つすべての特性を持っているとして、より多くの特徴を持つことができます)。
ありがとうございました!
必要な関係演算子が[リレーショナル部門](https://www.simple-talk.com/sql/t-sqlとして知られています-programming/divided-we-stand-sql-of-relational-division /)を使用します。 – onedaywhen