我有一張表EmpTraits
與員工及其特徵的列表。因此,此表將列出每個員工及其所有特徵(只要特質不同,員工可以多次列出,因此此表沒有具有相同員工和相同特徵的2條記錄)。如何檢索具有5個特定特徵的員工列表?
`Table: EmpTraits
+------------+---------+
| EmployeeID | TraitID |
+------------+---------+`
比方說,我有一個名爲EmpXTraits
(員工X性狀)VIEW僅列出所有的特質員工X具有(這是一個總的5)。
`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 /分 - 我們 - 擱置 - 在-SQL的關係劃分/)。 – onedaywhen