Hi Leute,
Ich habe gerade ein paar Probleme mit einer Query...
Code:
SELECT
tracking_devices.ID,
tracking_devices.device_name,
tracking_devices.show_name,
tracking_devices.contact_1_name,
tracking_devices.contact_2_name,
tracking_devices.contact_3_name,
tracking_devices.contact_4_name
FROM
tracking_devices,
tracking_devices_access,
tracking_server
WHERE
(
tracking_devices.ID = tracking_devices_access.device
AND
tracking_devices_access.user = 'f3c581fa3c6a0dd2eacf7ca0baee86bb'
)
OR
(
tracking_devices.server = tracking_server.ID
AND
tracking_server.owner = 'f3c581fa3c6a0dd2eacf7ca0baee86bb'
)
GROUP BY tracking_devices.ID
ORDER BY tracking_devices.device_name
durch das OR werden 2 AND-Bedingungen getrennt, doch eigtl. sollte ich als Rückgabe fologende Datensätze kriegen:
- alle, wo tracking_devices.ID = tracking_devices_access.device & tracking_devices_access.user = 'USERID'
- alle, wo tracking_devices.server = tracking_server.ID & tracking_server.owner = 'USERID'
-> Nutzen: Der Kunde, dem der Server gehört sieht alle seine Devices, seine Mitarbeiter aber nur die, welche sie sehen dürfen...
Leider führt diese Abfrage aber zu folgendem Problem:
Wenn ich einen Chef habe, kriegt er eine leere Ausgabe, da zwar tracking_server.owner = 'USERID' und auch bei der device der richtige server angegeben ist.
Trage ich allerding bei tracking_devices_access eine einzige device mit user = 'USERID' ein, dann bekomme ich alle Datensätze des servers für den kunden auzsgegeben...
Irgendwie merkwürdig, oder?
Kann mir da vielleicht jemand helfen?
LG djscaleo