AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Im SELECT mehrere Tabellen referenzieren?

Im SELECT mehrere Tabellen referenzieren?

Ein Thema von messie · begonnen am 15. Nov 2012 · letzter Beitrag vom 16. Nov 2012
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 16:22
Datenbank: Firebird • Version: 2.5 • Zugriff über: ibdac
Ich baue gerade eine Ansicht aus mehreren Tabellen zusammen.

Ich möchte zu jedem untergeordneten Bauteil die übergeordnete Los- und Auftragsnummer anzeigen.


Code:
CREATE VIEW V_SERIAL_OVERVIEW
AS
select a.PUMP_SERIAL, a.STEP_COUNT from PUMPS a
union
select b.BATCH_ID, b.BATCH_SUBID, b.DRAWING_NO
from BATCHES b where b.ID = a.BATCH_ID // -->> Fehler, da Zugriff auf falsche Tabelle
union
select distinct c.INTERNAL_ORDER from INTERNAL_ORDER_NO c
where c.ID = b.ORDER_ID // -->> müsste hier auch auftreten
Jedes a hat die Spalte BATCH_ID.
Ich hatte versucht, mehrere where-Klauseln einzuklammern, das ging aber auch nicht.
Da ich beim suchen auch nicht auf ähnliche Probleme stoße scheint es ein falscher Ansatz zu sein.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 16:25
Hast Du evtl. UNIONS mit JOINS verwechselt? Wie sind die Tabellen denn miteinander verknüpft?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 16:33
Hast Du evtl. UNIONS mit JOINS verwechselt? Wie sind die Tabellen denn miteinander verknüpft?
Tabelle Bauteil (hier Extruderpumpen) enthält die ID vom übergeordneten Los, dieses die ID vom Auftrag.
Das Union erscheint mir bisher logisch, da ich in einer Zeile die Seriennummern der Pumen mit den jeweiligen Los- und Auftragsinformationen anzeigen möchte.

Könnte ich den Zugriff auf eine andere Tabelle mit einem weiteren SELECT in Klammern umsetzen?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 16:39
Müsste es dann nicht ungefähr so lauten?
SQL-Code:
SELECT
  A.ID, B.ID, C.ID
FROM
  Bauteil A
JOIN
  Los B ON B.ID = A.Los_ID
JOIN
  Auftrag C ON C.ID = B.Auftrag_ID
Vermutlich sind aber nicht die IDs on Interesse, sondern die Bezeichner, Losnummern, Auftragsnummern etc., Du müsstest also die SELECT-Felder entsprechend anpassen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 18:11
Code:
CREATE VIEW V_SERIAL_OVERVIEW
AS
select Pumps.PUMP_SERIAL
      ,pumps.STEP_COUNT
      ,Batches.Batches_SubID
      ,Batches.Drawing_No
      ,Internal_Order_No.Internal_Order
from Pumps
    ,Batches
    ,Internal_Order_No
where Pumps.Batch_ID=Batches.Batch_ID
  and Batches.Order_ID=Internal_Order_No.ID
Ich denke so sollte es gehen, ggf. so ändern:

Code:
where Pumps.Batch_ID=Batches.Batch_ID(+)
  and Batches.Order_ID=Internal_Order_No.ID(+)
(ist Oracle Syntax!)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 15. Nov 2012, 18:14
Wobei das ja auch nur JOINS sind, allerdings in anderer Syntax
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Im SELECT mehrere Tabellen referenzieren?

  Alt 16. Nov 2012, 09:15
Moin,

hat super geklappt

Mir war nicht klar, dass ich die Tabellen hinter dem FROM zusammenfassen muss.
Liegt vielleicht auch daran, dass die a.x, b.x wie Variablen aussehen, was sie ja nicht sind.

Grüße, Messie
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:57 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