brauche sql select abfrage

bnoga burr

Grünschnabel
hi, ich will ne eigentlich simple sq Abfrage machen, bin aber als halber SQl Neuling schon damit überfordert.:

Ich hab zwei Tabellen, eine mit IDs und den dazugehörigen Namen. Die zweite Tabelle mit 3 Spalten, davon sind 2 Spalten auch ID Spalten (IDa und IDb) und in der dritten steht noch ne Zusatzinformation.
Ich möchte jetzt eigentlich nur diese zweite Tabelle komplett ausgeben, nur mit dem eigentlichen Unteschied, dass statt der zwei IDs jetzt die dazugehörigen namen aus Tabelle 1 stehen.. Aber das bekomm ich halt einfach nicht hin.

Wäre nett wenn ihr mir etwas auf die Sprünge helft
Danke
 
Hi!

Definition:
Tabelle T1:
id | id_a | id_b | name
Tabelle T2:
id | name

Die Verknüpfung kann mit LEFT JOIN erfolgen:

SELECT T1.name, T2a.name AS name_a, T2b.name AS name_b
FROM T1 LEFT JOIN T2 AS T2a ON (T1.id_a=T2a.id) LEFT JOIN T2 AS T2b ON (T1.id_b=T2b.id)

hui, hoffe ich habe nix verwurschtelt :)
 
Danke schon mal für die Antwort, aber ich habs wahrscheinlich zu dumm erklärt, das ganze sieht so aus:

Tabelle T1:
id | name
Tabelle T2:
id_a | id_b | | zusatzinformation

es soll nun Tabelle T2 ausgegeben werden, nur dass da statt id_a und id_b dann der jeweils der name steht, den man für die entsprechende ID aus Tabelle 1 bekommt.

Ich weiß jetzt nicht inwiefern ich deinen Select Befehl dafür verwenden kann, mit JOINS hab ich noch nichts gemacht.
Wäre sehr nett wenn du mir nochmal nen Select Befehl geben könntest.
Danke
 
hmm,

ich gehe davon aus dass die IDa und die ID der ersten Tabelle zusammen gehören !?
Code:
select t2.*, t1.name FROM tab1 t1, tab2 t2 WHERE t2.idb = t1.id
 
Hi!

Och, Mönsch! Heißt doch "tutorials.de" und nicht "machsmir.de" :(
Im vorherigen steht alles drin... :)

@JoelH: das sieht aber einfach aus! Entweder habe ich's anders verstanden, oder ich produziere hier gerade mist :)

SELECT T1a.name AS name_a, T1b.name AS name_b, T2.zusatzinfo
FROM T2 LEFT JOIN T1 AS T1a ON (T2.id_a=T1.id) LEFT JOIN T1 AS T1b ON (T2.id_b=T1.id)
 
Original geschrieben von Pinky_M
Hi!

Och, Mönsch! Heißt doch "tutorials.de" und nicht "machsmir.de" :(
Im vorherigen steht alles drin... :)

hmm... im vorigen hast du mir meine dreispaltige tabelle aber um eine Spalte vergrößert, deshalb weiß ich halt nicht so richtig wie und wo jetzt, naja, ich werds versuchen :rolleyes:

@JoelH
Nicht nur die IDa, die IDb gehört genauso dazu, sonst hätte ichs trotz meiner geringen kenntnisse noch hinbekommen :)

Um alle unklarheiten zu beseitigen, hier noch mal ein beispiel:
Tabelle T1:
id | name
1 | Ding
2 | Teil
3 | Objekt
Tabelle T2:
id_a | id_b | | zusatzinformation
1| 2|xy
3|2|zz

jetzt die unbekannte Abfrage und heraus kommt:
name_a |name_b | zusatzinformationen
Ding | Teil | xy
Objekt| Teil |zz:
 
hmm bei deiner zweiten Version sagt er mir:
ERROR 1109: Unknown table 'T1' in on clause
obwohl T1 vorhanden ist:eek:
Naja, ich probier halt nochmal nen bisschen rum.
Danke schon mal

Edit: Aber ansonsten sieht die zweite version gut aus... so weit ich das beurteilen kann, ähm :-(
 
Hi!

Ich wusste doch, daß ich etwas verwurschteln würd' - zu meiner Verteidigung: Programmiere selbst gerade mit Perl und MySql, da fällt das "Switchen" schwer :)

"T1" bekommt ja eine eigenen Namen!

SELECT T1a.name AS name_a, T1b.name AS name_b, T2.zusatzinfo
FROM T2 LEFT JOIN T1 AS T1a ON (T2.id_a=T1a.id) LEFT JOIN T1 AS T1b ON (T2.id_b=T1b.id)

...oder liegt's bereits am Bier...
 

Neue Beiträge

Zurück