Join
將 1 列連接到另一個表中的多個列
我有 2 個表埠映射和設備
Portmap 具有以下列。ID(即 PK)、networkDeviceID(FK 到設備表)、埠、時間戳、描述、connectedDeviceID(FK 到設備表)
設備具有以下列。ID(即 PK)、modelID(模型表的 FK)、主機名、序列號、lanmac、wmac
我對如何在進行加入時獲得正確的相應主機名顯示有一個心理障礙。例如:
如果埠映射表中的第 1 行包含以下 networkdeviceID = 2 和 ConnecteddeviceID = 1
如何讓它顯示每個 ID 值的主機名,而不僅僅是給我 INT 值
編輯
如何從 deviceID 獲取主機名以顯示在 networkdeviceID 列和 conntecteddeviceID 列中?
編輯2
也許這可以幫助您了解我需要什麼。
我希望將主機名 mvl 顯示在 networkdeviceID 欄位中,並將 mvd 顯示在第 1 行的 connectedDeviceID 欄位中。然後在第 2 行顯示 networkdeviceID 的 mvd 和 connectedDeviceID 欄位的 mvl 。
我需要這樣,所以如果說最終使用者決定將主機名 mvl 更改為 xyz1234,整個數據庫中的每條記錄都不會自動更新為 xyz123,而不必手動更改。或者如果在埠映射表中他們將 row2 networkdebiceID 更改為 7,它會自動顯示 mvdxxxxx 的設備表主機名
你明白我現在想要做什麼了嗎?
嘗試這樣的事情:
SELECT p.ID, d1.hostname, p.port, p.timestamp, p.description, d2.hostname FROM Devices d1, Portmap p, Devices d2 WHERE d1.id = p.networkdeviceID and d2.id = p.connecteddeviceID;
嘗試這個:
SELECT d.hostname FROM Devices d INNER JOIN portmap p ON d.ID = p.ID WHERE p.networkdeviceID = 2 and p.ConnecteddeviceID = 1
我希望我能很好地理解你。