データを差し引く場所から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を実行すると、結果がめちゃくちゃになります
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 の正しい表示名を取得する方法についてのアイデアはありますか?
さらに明確にする必要がある場合は、お知らせください。事前に助けてくれてありがとう