2017-09-29 26 views
0

我試圖加入兩個數據源,這兩個數據源都是關閉子網啓動IP的密鑰。然而,每個中的起始IP都以不同的方式重新編碼。我可以使用什麼語法來加入基於起始IP的兩個表,無最後一個字符?如何在類似的按鍵上連接兩個表格?

我需要建立一個結果,每個表都有兩個描述列。

謝謝!

table 1: 
 
"Starting IP" "Ending IP" "Description_1" 
 
10.16.0.1  10.16.0.254 "REF#12345678" 
 
10.16.1.1  10.16.1.254 "REF#987654321" 
 
10.16.2.1  10.16.2.254 "REF#147258369" 
 

 
table 2: 
 
"Starting IP" "Ending IP" "Description_2" 
 
10.16.0.0  10.16.0.255 "testing by Bill" 
 
10.16.1.0  10.16.1.255 "production by Ann" 
 
10.16.2.0  10.16.2.255 "VoIP by George" 
 

 
desired query result: 
 
"Starting IP" "Ending IP" "Description_1" "Description_2" 
 
10.16.0.0  10.16.0.255 "REF#12345678" "testing by Bill" 
 
10.16.1.0  10.16.1.255 "REF#987654321" "production by Ann" 
 
10.16.2.0  10.16.2.255 "REF#147258369" "VoIP by George"

回答

1

SUBSTRING_INDEX(str, delim, count)會遇到countdelim之前返回字符串,並可能會成爲你沒事吧。

SELECT table2.*, table1.Description_2 
FROM table2 
LEFT JOIN table1 ON 
    (substring_index(table2.`Starting IP`,'.',3) 
    =substring_index(table1.`Starting IP`,'.',3)) 

但是,這不會很有效。編碼它不是一個字符串,但實際bitstring將打開使用邏輯功能,如按位AND和類似的可能性,這可能會更有效。

+0

工作就像一個魅力!謝謝! – Sonic84