Hi, I am storing a log of HTTP requests in a database table (including IP address):
http_log: id(PK), path, time, ip I have another table that contains CIDR ranges and names for them: network_names: id(PK), cidr, name Some example data for both tables: network_names: 1, 192.168.0.0/24, 'Engineering' 2, 192.168.1.0/24, 'Media' 3, 192.168.2.0/24, 'Engineering' 4, 192.168.3.0/24, 'Accounting' 5, 192.168.4.0/24, 'Engineering' 6, 10.0.0.0/8, 'Engineering' http_log: 1, '/index.html', 110000001, 192.168.0.47/32 2, '/index.html', 110000023, 200.1.2.3/32 3, '/index.html', 110000059, 1.2.3.4/32 4, '/index.html', 110000232, 192.168.2.1/32 5, '/index.html', 113919102, 192.168.1.39/32 6, '/index.html', 129101293, 10.2.2.4/32 7, '/index.html', 132828282, 192.168.4.2/32 Now, in trying to produce a report on this data, I've come up against an interesting (to me at least!) problem.. I basically want the same output as in http_log, but substituting the IP with the network name where available, i.e: 1, '/index.html', 110000001, Engineering 2, '/index.html', 110000023, 200.1.2.3/32 3, '/index.html', 110000059, 1.2.3.4/32 4, '/index.html', 110000232, Engineering 5, '/index.html', 113919102, Media 6, '/index.html', 129101293, Engineering 7, '/index.html', 132828282, Engineering I'm wondering what the best way of doing this is (considering that http_log could have >100000 rows) Is it possible to somehow JOIN using the <<= and >>= network operators? Or would I have to iterate the network_names table manually with LOOP (or something) on every row of the http_log? If anyone can share some advice, that would be great! Thanks, JST