Query a table with linked objects as columns
This is not the best way of writing this Query but this should do the trick.

SELECT
    *
FROM YourTable
WHERE ((Line IN (SELECT DISTINCT
    LINE
FROM YourTable
WHERE [Route] = 12)
AND [Rout] IS NULL)
OR [Route] = 12)
OR (
Network IN (SELECT DISTINCT
    Network
FROM YourTable
WHERE [Route] = 12)
AND (LINE IS NULL
OR LINE IN (SELECT DISTINCT
    LINE
FROM YourTable
WHERE [Route] = 12)
))


You can change those where conditions to joins. As you can see, its performing 3 select statements in IN Clause (one of which is a repetition) which may affect performance. Something like:

SELECT
    Main.*
FROM Subscription as Main
LEFT OUTER JOIN Subscription as Lines ON Lines.[Route] = 12
LEFT OUTER JOIN Subscription as Networks ON Networks.[Route] = 12
WHERE 
    Main.[Route] = 12
    OR (Main.Line = Lines.Line and Main.Route IS NULL)
    OR (Main.Network = Networks.Network AND (Main.Line IS NULL OR Main.Line = Lines.Line ))