MySQL Abfrage über zwei Tabellen mit unterschiedlicher ID

Hallo,
ich habe zwei Tabellen (tabA und tabB) und aktuell frage ich beide Tabellen nacheinander ab um einen Wert zu ermitteln. Wie kann ich das in einer Abfrage lösen?

TabA (id, user, created, lastlogin, …)
TabB (userid, Name, E-Mail, …)

Ich lese den Wert (user) aus TabA aus anhand meiner ID und mit diesem Wert (user) kann ich dann den Namen aus TabB (hier ist es allerdings userid) ermitteln.

Geht das mit join?
Danke, Thomas

Hallo Thomas,

grundsätzlich schon. Es ist aber nicht unbedingt notwendig, ein Subselect tut’s auch:

select Name from TabB where userid=(select id from TabA);

(statt „=“ müsstest du „in“ benutzen, wenn du in dem eingeklammerten Subselect keine Bedingung setzt, die sicherstellt, dass das Subselect nur eine id zurückliefert)

oder eben

select Name from TabB inner join TabA on userid=id;

Gruß
Christa

Hallo Christa,
danke für deine schnelle Antwort, das sieht plausibel aus :slight_smile: aber ich habe eine Komponente vergessen…
Wie baue ich in diese Abfrage (ich würde die „Inner Join“ Variante nehmen) noch die Auswahl einer bestimmten ID in TabA ein? So würde ich ja jetzt alle Werte zuordnen…
VG, Thomas

Hallo Thomas,

hmm, ich dachte, du kennst dich wenigstens ein bisschen mit Datenbanken aus. :wink: Das geht natürlich mit where, und zwar bei beiden Abfragen:

select Name from TabB where userid=(select id from TabA where id=xyz);

bzw.

select Name from TabB inner join TabA on userid=id where id=xyz;

Wenn du jetzt NOCH eine Bedingung aus der Tasche zauberst, musst du sie selbst einbauen. :stuck_out_tongue:

Gruß
Christa

1 Like

Hallo Christa,
ich dachte auch, dass ich zumindest Grundkenntnisse bei SQL-Anweisungen habe, aber wenn man wie ich einen Schreibfehler in der Anweisung hat, helfen auch keine Kenntnisse :smile:
Die Where-Klausel hatte ich bereits auch so getestet, aber bei mir hatte es nicht geklappt. Als du dann die gleiche Lösung gepostet hast, hab ich den Schreibfehler erst gefunden. Danke für dein Hilfe!!!

Das stimmt allerdings. Manchmal lasse ich auch Kollegen draufschauen, wenn ich vor lauter Blindheit den Fehler nicht mehr selbst finde. :smile:

Freut mich, dass es geholfen hat!

Wenn du dich mal steigern möchtest … :smiley: hier ist eine (wie ich finde sehr gute) Übersicht über die verschiedenen Arten von Joins, die es gibt: