我有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)