SQL Abfrage

zerberos

Well-known member
ID: 58651
L
30 Mai 2006
75
0
Hallo, ich habe 2 Tabellen

A
---------
ID
Bezeichnung

B
---------
ID
AID
Bezeichnung

Jetzt das Problem. Ich habe aus Tabelle A die Bezeichnung. Jetzt möchte ich aus Tabelle B alle Datensätze Abfragen die dazu passen

Über ID -> AID sind die Tabellen ja verknüpft. Also ich müsse erst Anhand der Bezeichnung die ID Aus A Abfragen und dann alle Datensätze aus Tabelle B wo die AID der ID aus A entspricht. Wie bekomme ich das am besten hin. Ist das in einen Befehl möglich?
 
B.Bezeichnung is schon was anderes, als A.Bezeichnung?

Ja, das geht; das is ein JOIN.
Code:
[FONT=Courier New][B][COLOR=#9932cc]SELECT[/COLOR][/B] B.ID, A.Bezeichnung
[B][COLOR=#9932cc]FROM[/COLOR][/B] B
[B][COLOR=#9932cc]JOIN[/COLOR][/B] A [B][COLOR=#9932cc]ON[/COLOR][/B] A.ID = B.AID[/FONT]
Die JOIN-Bedingung legt fest, welche Datensätze aus beiden Relationen zusammengehören.
 
Hallo,

A.Bezeichnung und B.Bezeichnung sind was anderes

Deine Lösung sind schon gut aus. Nur jetzt hab ich ja noch das Problem, das ich nur A.Bezeichnung kenne. A.ID kenne ich noch nicht. Die muss ich erst anhand der A.Bezeichnung irgendwie auslesen um die Abfrage mit dem Join machen zu können. Also brauch ich doch 2 Abfragen oder?
 
Der Teil
Code:
SELECT B.ID, A.Bezeichnung FROM B JOIN A ON A.ID = B.AID
ist nur MySQL intern, da hast du ihm bisher noch keine genauen Daten gegeben der gibt dir so alle Datensätze aus.

Wenn du nun noch
Code:
 WHERE A.Bezeichnungs = "'.$DEINEvariable.'"
hinten dran setzt, dann gibt er dir nur den Datensatz aus, wo A.Bezeichnung mit deiner Variablen über einstimmt...

Code:
SELECT B.ID, A.Bezeichnung FROM B JOIN A ON A.ID = B.AID WHERE A.Bezeichnungs = "'.$DEINEvariable.'"

hoffe ich hab dein Problem jetzt nicht falsch verstanden