So, wie du den SELECT geschrieben hast, ist das normal, da deine WHERE-Bedingungen nicht erfüllt sind, wenn in einer Tabelle nix drin steht.
Grundsätzlich würde ich dir empfehlen, nicht mit CROSS JOINs (Tabellen Namen im FROM nur hintereinander schreiben), da dies den SELECT gerade bei grösseren Datenmengen extrem verlangsamt. Der Verknüpft dann erst jede Zeile mit jeder aus den anderen Tabellen und wendet dann die WHERE-Bedingung an. Sinnvoller und schneller geht es über INNER JOINs. Sähe dann so aus:
SELECT
b.lfdnr_felder, b.berechtigung, c.berechtigung
FROM
kerp_zuofese as a,
INNER JOIN kerp_zuofebe as b
ON b.lfdnr_felder=a.lfdnr_felder
INNER JOIN kerp_zuofebespeziall as c
ON [Verknüpfung zu a und oder b]
WHERE b.lfdnr_sicherheitsstufe='$sicherheitsstufe'
AND a.lfdnr_seite='$seitenindex'
Würde dir aber immer noch nix anzeigen. Wenn du was angezeigt haben willst, solltest du mit OUTER JOINs arbeiten, da wird dann auch was angezeigt, wenn in einer Tabelle nix steht:
SELECT
b.lfdnr_felder, b.berechtigung, c.berechtigung
FROM
kerp_zuofese as a,
LEFT OUTER JOIN kerp_zuofebe as b
ON b.lfdnr_felder=a.lfdnr_felder
LEFT OUTER JOIN kerp_zuofebespeziall as c
ON [Verknüpfung zu a und oder b]
WHERE b.lfdnr_sicherheitsstufe='$sicherheitsstufe'
AND a.lfdnr_seite='$seitenindex'
Hier müsste jetzt nur was in a stehen, dann käme was zurück. |