Na gut, folgende lösung würden wir auch als "profikorrekt" durchgehen lassen:
SELECT
b.Kennzahl,
(
SELECT
u.name
FROM
unternehmen u
WHERE
(u.ident = b.Netz)
) AS Netz_Name,
b.Netz AS Netz_ID,
(
SELECT
u.name
FROM
unternehmen u
WHERE
(u.ident = b.KA)
) AS KA_Name,
b.KA AS KA_ID,
(
SELECT
u.name
FROM
unternehmen u
WHERE
(u.ident = b.Strom)
) AS Strom_Name,
b.Strom AS Strom_ID,
(
SELECT
u.name
FROM
unternehmen u
WHERE
(u.ident = b.Wasser)
) AS Wasser_Name,
b.Wasser AS Wasser_ID,
FROM
betreiber b
WHERE
(b.kennzahl = 100100) -- wenns denn schon sein muss ;)
Wichtig hier, dass die IDs des abgefragten und verzeigerten Objekts ebenfalls abgefragt wird, damit keine Inkonsistenz ensteht. (Bspw. könnten Unternehmen gleiche Namen haben, zumindest reicht das Attribut Name nicht als Eindeutigkeit, vgl. auch die Abfrage "SELECT Name FROM Unternehmen" wenn die Tabelle Unternehmen nur ein Datenfeld Name besässe. - BTW, müsste es nicht "Namen" heissen? ;)