SELECT L1.osm_id AS id1, L1.name AS name1, L2.osm_id AS id2, L2.name AS name2, ST_Intersection(L1.way, L2.way) AS intersection FROM (SELECT osm_id, name, way FROM planet_osm_line WHERE way && !bbox! AND highway IN ('unclassified', 'residential', 'tertiary', 'secondary', 'primary', 'trunk') AND name IS NOT NULL) AS L1, (SELECT osm_id, name, way FROM planet_osm_line WHERE way && !bbox! AND highway IN ('unclassified', 'residential', 'tertiary', 'secondary', 'primary', 'trunk') AND name IS NOT NULL) AS L2 WHERE L1.name < L2.name AND ST_Intersects(L1.way, L2.way) AND ST_Intersection(L1.way, L2.way) && !bbox! ORDER BY L1.name, L2.name;