我有3个表从我减法数据,并获得大部分的数据我有一个查询的工作很好,但我不能得到一个特定的行,这就是我需要的地方一些帮助。有助于更好地理解联接
表1:
EquipmentID | EquipmentName | EquipmentTypeID
15 | Tesla | 68
16 | Colombus | 93
表2:
EquipmentTypeID | DisplayName |
68 | Electrical Device|
93 | GPS Device |
表3:
EquipmentID | IPAddress |
15 | 192.168.1.1|
16 | 192.168.0.1|
到目前为止,我得到的是使用如下因素SQL语法如下数据:
SELECT DISTINCT t1.IPAddress,
t2.EquipmentID
FROM Table3 t1
JOIN Table1 t2 ON t1.EquipmentID = t2.EquipmentID
WHERE IPAddress LIKE '%192%'
结果我得到的样子
IPAddress | EquipmentID |
192.168.1.1| 15 |
192.168.0.1| 16 |
但是当我做了JOIN像followiing那么结果只是搞砸
SELECT DISTINCT t1.IPAddress,
t2.EquipmentID,
t3.EquipmentTypeID,
t4.DisplayName
FROM Table3 t1
JOIN Table1 t2 ON t2.EquipmentID = t1.EquipmentID
JOIN Table2 t3 ON t3.EquipmentTypeID = t1.EquipmentTypeID
JOIN Table2 t4 ON t3.EquipmentTypeID = t1.EquipmentTypeID
WHERE IPAddress LIKE '%192'
但现在的结果我得到的是以下几点:
IPAddress | EquipmentID |EquipmentTypeID| DisplayName |
192.168.1.1| 15 |68 | ElectricalDevice|
192.168.1.1| 15 |93 | GPS Device |
192.168.0.1| 16 |68 | ElectricalDevice|
192.168.0.1| 16 |93 | GPS Device |
有关如何获取相应IPAddress和EquipmentID的正确显示名称的任何想法?
如果您需要更多说明,请让我知道。感谢您的帮助提前
你为什么加入表2的两倍?有什么理由吗?另外,使用LIKE'%192'你不会得到你向我们展示的结果。 – kyooryu 2013-04-25 09:38:32