Hallo Jungs und Mädels,
ich hab mal ne Frage zu SQL Joins.
Ich versuch mir eine View zu bauen, die alle relevanten Daten für eine Tabelle enthält. Da eine SQL Engine viel besser dazu geeignet ist, die Fremdsschlüssel aufzulösen, als das mit Java möglich wäre benutze ich LEFT JOINS.
Also nun mal Konkret. Ich habe eine Tabelle mit relativ vielen Schlüsselund will mir diese Schlüssel zu aussagefähigen Namen (für den Benutzer verständliche) mittels einer View umbauen.
Hier eine kleine Auszug aus dem ganzen Ding
-----------------------
| Artikel |
-----------------------
| ID |
| ArtikelName |
|HerstellerID |
|Atrribut1ID |
|Attribut2ID |
-----------------------
-----------------------
|Hersteller |
-----------------------
|HerstellerID |
HerstellerName |
------------------------
-----------------------
|Attribut |
-----------------------
|AttributID |
|AttributeName |
-----------------------
So weit so gut. Ich bekomm die Tabelle der aufgelösten Hersteller ID mit dem folgenden SQL Befehl
select artikelid,herstellername from Artikel
LEFT JOIN Hersteller ON artikel.ID = hersteller. herstellerID
Das ganze funktioniert auch mit dem ersten Attribut
select artikelid,herstellername,attributeName from Artikel
LEFT JOIN Hersteller ON artikel.ID = hersteller. herstellerID
LEFT JOIN Hersteller ON artikel.attribute1ID = attribut. attributeID
Wenn ich das ganze jetzt aber mit dem zweiten Attribut aufrufen will, dann kracht es, da ich ja nun zwei Spalten habe, die AttributeName heißen. Wie krieg ich dieses Problem in den Griff?
ich hab mal ne Frage zu SQL Joins.
Ich versuch mir eine View zu bauen, die alle relevanten Daten für eine Tabelle enthält. Da eine SQL Engine viel besser dazu geeignet ist, die Fremdsschlüssel aufzulösen, als das mit Java möglich wäre benutze ich LEFT JOINS.
Also nun mal Konkret. Ich habe eine Tabelle mit relativ vielen Schlüsselund will mir diese Schlüssel zu aussagefähigen Namen (für den Benutzer verständliche) mittels einer View umbauen.
Hier eine kleine Auszug aus dem ganzen Ding
-----------------------
| Artikel |
-----------------------
| ID |
| ArtikelName |
|HerstellerID |
|Atrribut1ID |
|Attribut2ID |
-----------------------
-----------------------
|Hersteller |
-----------------------
|HerstellerID |
HerstellerName |
------------------------
-----------------------
|Attribut |
-----------------------
|AttributID |
|AttributeName |
-----------------------
So weit so gut. Ich bekomm die Tabelle der aufgelösten Hersteller ID mit dem folgenden SQL Befehl
select artikelid,herstellername from Artikel
LEFT JOIN Hersteller ON artikel.ID = hersteller. herstellerID
Das ganze funktioniert auch mit dem ersten Attribut
select artikelid,herstellername,attributeName from Artikel
LEFT JOIN Hersteller ON artikel.ID = hersteller. herstellerID
LEFT JOIN Hersteller ON artikel.attribute1ID = attribut. attributeID
Wenn ich das ganze jetzt aber mit dem zweiten Attribut aufrufen will, dann kracht es, da ich ja nun zwei Spalten habe, die AttributeName heißen. Wie krieg ich dieses Problem in den Griff?