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.

Tabellen zusammenbasteln

Empfohlene Antworten

Veröffentlicht

Ich habe 3 Tabellen die ich miteinander verknüpfen will, ich weiß jetzt nicht genau wie ich den Join machen soll. Also in einer Tabelle gibt es eine Spalte in der eine Ortsbezeichnung als ID vermerkt ist, also dort steht dann nicht "Berlin" sondern "1234". In einer 2. Tabelle gibt es dann eine Aufschlüsselung in der man nachschauen kann dass 1234 --> Berlin bedeutet. Jetzt hab ich noch eine 3. Tabelle in der es eine Ortsspalte gibt, wo der Name drin steht, also Berlin z.b.

Jetzt ist es so dass die 1. Tabelle nur einen Teil der Daten hat, die es auch in der 3. Tabelle gibt. Ich möchte mir jetzt aus der 1. Tabelle nur die Datensätze ausgeben lassen, die denen der 3. Tabelle entsprechen (indem ich nachdem Ort selektiere)

Also ich müsste ja dann erst mal ein join machen von der 1.Tabelle und der 2.Tabelle dass ich weiß welche ID welchem Ort zugeordnet ist. Und wie join ich dann die 3.Tabelle?

  • Autor

ehm...da hast du recht...Moment ich probier das gleich mal aus, weil das hat glaub ich nicht funktioniert.

Also du hast mir das ja geschickt:

SELECT a.* FROM

tabelle1 a,

tabelleid ids,

tabelleort ort

WHERE

ids.id=ort.id

AND

ort.ortname=a.ortname

Aber die letzte Where-Bedingung geht ja nicht, da in der a-Tabelle keine Orstname steht sondern nur die ID

ehm...da hast du recht...Moment ich probier das gleich mal aus, weil das hat glaub ich nicht funktioniert.

Also du hast mir das ja geschickt:

SELECT a.* FROM

tabelle1 a,

tabelleid ids,

tabelleort ort

WHERE

ids.id=ort.id

AND

ort.ortname=a.ortname

Aber die letzte Where-Bedingung geht ja nicht, da in der a-Tabelle keine Orstname steht sondern nur die ID

- Könntest du mal die Struktur der 3 Tabellen posten ? Mir ist irgendwie nicht klar, wieso du 3 Tabellen brauchst, um eine PLZ-Ort Beziehung abzubilden

  • Autor

Das kommt daher da das die Daten aus 2 Datenbanken bzw. 2 unterschiedlichen System kommen und diese konsolidiert werden. Die Ort-ID's sind allerdings keine PLZ's sondern nach anderen Kriterien erstelle Nummern. Also Tabelle1 sieht so aus(gibt natürlich noch mehr Spalten als Ort, aber nur die is ja jetzt entscheidend):

Ort

------

1234

3363

2327

8363

Tabelle2:

ID_____Ortsbez

1234___BER

3363___FRA

2327___COL

8363___HAM

Diese beiden Tabellen sind Teil eines Systems mit sagen wir mal 10Mio Datensätzen.

Tabelle3 stammt jetzt aus einem anderen System:

Ort

-----

FRA

BER

HAM

COL

Dort gibt es nur 1Mio Datensätze. Und ich möchte jetzt aus der Tabelle des 1 Systems die Datensätze rausfiltern, die denen des 2. Systems entsprechen. Also wenn es beispielsweise im System1 Datensätze gibt mit dem Ort XYZ gibt, die es in dem 2. System gar nicht gibt, dann möchte ich diese auch nicht ausgegeben haben.

Naja wo liegt da das Problem? Du formulierst das einfach als Join:


SELECT ids.id,ortname.name

  FROM ids,ort_ids,ortname

WHERE ids.id=ort_ids.id

    AND ort_ids.ortsbez=ortname.name

Das ist im übrigen auch das was ich vorher gepostet hab, allerdings bist mit deinen blö... meine unglücklichen Tabellenbenamsungen hier im Beispiel durcheinander gekommen.

Dim

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.