我有2個表:Equipment
,並Equipment_Type
:選擇,改變參考
+-------------------------------+
| EqId [PK] | ETId [FK] | EqNum |
+-------------------------------+
| 1 | 1 | ABC |
| 2 | 1 | DEF |
| 3 | 3 | GHI |
+-------------------------------+
| ETId [PK] | Code | Discipline |
+-------------------------------+
| 1 | MOT | ELEC |
| 2 | MOT | MECH |
| 3 | SW | ELEC |
所以從這個例子中,我們可以看到,無論我們的設備是電動馬達。
但是,由於對最初人羣的誤解,所有的設備類型都被確定爲ELEC
學科。此後,MECH
設備已被識別,我必須找到Equipment_Type
表中已複製的所有設備,並將其更改爲參考MECH
設備類型。
我嘗試這樣做:
SELECT * FROM Equipment EQ
INNER JOIN Equipment_Type ET on ET.ETId = EQ.ETId
WHERE ET.Discipline = 'MECH';
哪些(顯然)不返回任何結果 - 與所有其他JOIN
查詢。
我想實現的是將選擇只有一個ELEC
設備類型是也一個MECH
設備類型的設備進行搜索。我意識到這需要一個嵌套的查詢,但我不知道在哪裏放置它。
所以搜索應返回:
+---------------------------+
| EqNum | ETId | Discipline |
+---------------------------+
| DEF | 1 | ELEC |
因爲該條目需要改變到MECH
學科(的即ETID = 2而不是1)