Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage - Tabelle doppelt aber über andere ID verbinden (https://www.delphipraxis.net/109933-sql-abfrage-tabelle-doppelt-aber-ueber-andere-id-verbinden.html)

hirnstroem 10. Mär 2008 13:12

Datenbank: MS Access • Version: kA • Zugriff über: ADO

SQL Abfrage - Tabelle doppelt aber über andere ID verbinden
 
'loha Folks,

Folgende Abfrage (vereinfacht), soll sämmtliche Felder aus einer Tabelle 'Device' sowie die in Beziehung stehenden Felder aus 'Device_User' und 'Floor' ausgeben, was sie soweit auch tut:

SQL-Code:
SELECT *
FROM
(Device_User RIGHT JOIN
  (Floor INNER JOIN
    Device
  ON [Floor].[FloorID] =[Device].[FloorID])
ON [Device_User].[DeviceID] = [Device].[DeviceID])
Nun ist in der Tabelle 'Device_User' wiederum eine FloorID (Fremdschlüssel, Tabelle 'Floor') über die eine weitere Tabelle (DoorRelay) mit einer weiteren ID (DoorRelayID) verknüpft, deren dazugehörige Felder in obige Abfrage eingebunden werden sollen. Nun versteht aber entweder Access / ADO mich nicht oder umgekehrt, eine Funktionierende Abfrage mit dem gewünschten Ergebnis, wurde bisher nicht ausgegeben, deshalb tue ich mein Problem nun hier kund.

Helfende Worte werden gerne entgegengenommen.

Grüsse
hirnstroem

mkinzler 10. Mär 2008 18:46

Re: SQL Abfrage - Tabelle doppelt aber über andere ID verbin
 
Das liegt an Access. Du musst die Abfrage zerlegen (Views)

marabu 10. Mär 2008 20:04

Re: SQL Abfrage - Tabelle doppelt aber über andere ID verbin
 
Hallo,

ich habe kein MS Access zur Verfügung, aber der Autor des SQL-Statements in Beitrag #1 kannte offensichtlich die Access-spezifische Klammerungsregel. So sollten sich weitere Joins hinzufügen lassen:

SQL-Code:
SELECT *
FROM (
  DoorRelay R RIGHT JOIN (
    Device_User U RIGHT JOIN (
      Floor F INNER JOIN Device D ON F.FloorID = D.FloorID
    ) ON U.DeviceID = D.DeviceID
  ) ON R.DoorRelayID = U.FlooId
)
Der Join-Typ muss ggf. angepasst werden.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz