Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich benötige dringend eure Hilfe:

ich habe folgende Abfragen, die ich gerne zu einer Abfrage vereinen würde.

Abfrage 1 gibt mir Fremdschlüssel mit ihren zugehörigen Datenobjekt und Attribut wieder:

select distinct (key.key_nr), key.key_type, key.key_dobj, dataobject.dobj_name, dataobject.dobj_type, attribute.att_nr, attribute.att_name

from key

inner join dobj_att_rs_key on dobj_att_rs_key.key_nr = key.key_nr

inner join attribute on dobj_att_rs_key.att_nr = attribute.att_nr

inner join dataobject on dataobject.dobj_nr = key.key_dobj

where (key.ins_by=1 and key.key_type in ('F','f') and dataobject.dobj_type in ('V','v'));

Abfrage 2 gibt mir die Primärschlüssel mit ihren Attributen und Datenobjekten wieder, auf welche sich die Fremdschlüssel beziehen:

select key.key_nr as Primary_key, dataobject.dobj_nr, dataobject.dobj_name

from key

inner join dataobject on dataobject.dobj_nr = key.key_dobj

where (key_nr in (select key.key_reference from key));

Ich habe den Tipp bekommen die Joins mehrmals mit unterschiedlichen Aliasnamen durchzuführen. Allerdings weiß ich nicht wie. Ich hoffe ihr könnt mir helfen.

Hier seht ihr den Aufbau der Datenbank: 2254d1230040034-schluesselbezoehungen-metadatenbank-diagramm-md.jpg

Es fehlt der Hinweis auf das DBMS. Im Grunde kann man das oft mit dem Schlüsseltwort "as" oder "alias" lösen. Infos dazu würde ich aber in der Dokumentation des DBMS nachschlagen.

Die Selects werden eben einfach ineinander gesetzt bzw Du müsstest dann noch auf die entsprechenden JOIN-ON Verbindungen zwischen den Selects achten. Da aus Deinem Posting nicht klar hervorgeht, wie die Ergebnismenge der beiden Abfragen aussehen soll, ist so direkt ein Verbinden nicht möglich (Stichworte: left / right join, inner join usw)

Phil

Hi Phill,

erstmal danke für die Antwort.

1. Ich arbeite Oracle 10g Database (XE)

2. Das Ergebnis der Abfrage soll folgendes beinhalten:

- Key_Nr des Fremdschlüssels aus Key

- Key_Type des Fremdschlüssels aus Key

- Att_Nr des Fremdschlüsselattributs aus Attribute

- Att_Name des Fremdschlüsselattributs aus Attribute

- DOBJ_Nr des Fremdschlüsselattributs aus Dataobject

- DOBJ_Name des Fremdschlüsselattributs aus Dataobject

- Key_Nr des Primärschlüssels auf den der Fremdschlüssel referenziert aus Keys

- DOBJ_Nr zu dem der Primärschlüssel gehört aus Dataobject

- DOBJ_Name zu dem der Primärschlüsseö gehört aus Dataobject

Ich hoffe du kannst mir weiterhelfen.

Viele Grüße

Also, ich bin jetzt so weit, dass er mir alle Foreign Keys mit ihren zugehörigen Attributen und Datenobjekten und die dazugehörige Nr des Primary Keys auf den der FK referenziert anzeigt. Aber wie schaffe ich es, dass er mir das Datenobject anzeigt zu dem der Primary Key gehört????

select distinct (key.key_nr) as Foreign_Key_nr, key.key_type, key.key_dobj as DOBJ_of_FK, DO1.dobj_name as DOBJ_name_of_FK, attribute.att_nr as attribte_nr_of_FK, attribute.att_name as attribute_name_of_FK, key.key_reference as Primary_Key_nr

from key

inner join dobj_att_rs_key on dobj_att_rs_key.key_nr = key.key_nr

inner join attribute on dobj_att_rs_key.att_nr = attribute.att_nr

inner join dataobject DO1 on DO1.dobj_nr = key.key_dobj

where (key.ins_by=1 and key.key_type in ('F','f'));

Ich habe die Lösung gefunden. Ich habe key über key_reference auf key_nr in key gejoint und dann noch einmal mit dem Dataobject. Die Lösung sieht folgendermaßen aus:

select distinct (key.key_nr) as Foreign_Key_nr, key.key_type, key.key_dobj as DOBJ_of_FK, DO1.dobj_name as DOBJ_name_of_FK, attribute.att_nr as attribte_nr_of_FK, attribute.att_name as attribute_name_of_FK, key.key_reference as Primary_Key_nr, DO2.dobj_nr as DOBJ_nr_PK, DO2.dobj_name as DOBJ_name_PK

from key

inner join dobj_att_rs_key on dobj_att_rs_key.key_nr = key.key_nr

inner join attribute on dobj_att_rs_key.att_nr = attribute.att_nr

inner join dataobject DO1 on DO1.dobj_nr = key.key_dobj

INNER JOIN key k ON k.key_nr = key.key_reference

inner join dataobject DO2 on k.key_dobj = DO2.dobj_nr

where (key.ins_by=1 and key.key_type in ('F','f'));

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.