AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage - Tabelle doppelt aber über andere ID verbinden
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage - Tabelle doppelt aber über andere ID verbinden

Ein Thema von hirnstroem · begonnen am 10. Mär 2008 · letzter Beitrag vom 10. Mär 2008
Antwort Antwort
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

SQL Abfrage - Tabelle doppelt aber über andere ID verbinden

  Alt 10. Mär 2008, 13:12
Datenbank: MS Access • Version: kA • Zugriff über: ADO
'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
inde deus abest
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 10. Mär 2008, 18:46
Das liegt an Access. Du musst die Abfrage zerlegen (Views)
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

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

  Alt 10. Mär 2008, 20:04
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz