Name anstatt ID aus zwei Tabellen

kosovafan

Erfahrenes Mitglied
Hallo,

Tabelle A:
- xt_plg_products_to_attributes (alles Zahlen)
-- products_id, (Artikelnr.)
-- attributes_id, (Variante zb. Durchmesser)
-- attributes_parent_id (Master Variante wie zb Innen, Länge, Breite etc.)

Tabelle B
- xt_plg_products_attributes_description
-- attributes_id (ID nummerisch)
-- attributes_name (Name als Text der ID)

Wie kann ich es schaffen das beim abfragen der xt_plg_products_to_attributes die attributes_id und die attributes_parent_id der Tabelle A anstatt die Zahlen die Texte aus Tabelle B genutzt werden.

SQL:
SELECT
    xppta.products_id,
    xppta.attributes_id,
    xppta.attributes_parent_id,
    xppad.attributes_name
FROM
    xt_plg_products_to_attributes xppta 
    JOIN xt_plg_products_attributes_description xppad ON xppta.attributes_id = xppad.attributes_name

Das Ziel wäre eine Ausgabe wie:

Code:
products_id|atrributes_id|attributes_parent_id
512|19mm|Innen
512|Meter|Länge
513|19mm|Innen
513|5m|Länge
...
.


Hat hier jemand Rat?

Danke & Gruß
Silvio
 

Anhänge

  • 1.png
    1.png
    226,7 KB · Aufrufe: 4
  • 2.png
    2.png
    144,5 KB · Aufrufe: 4
Lösung
Code:
ON xppta.attributes_id = xppad.attributes_name
Du vergleichst eine ID mit einem Namen? Nöp, da steckt garantiert ein Fehler drin.

Aber zur Frage. Die xt_plg_products_attributes_description 2 mal joinen
SQL:
select
    xppta.products_id,
    xppta.attributes_id,
    xppad.attributes_name,
    xppta.attributes_parent_id,
    xppad_parent.attributes_name as parent_attributes_name
from
    xt_plg_products_to_attributes xppta 
    inner join xt_plg_products_attributes_description xppad 
        on xppta.attributes_id = xppad.attributes_id
    left join xt_plg_products_attributes_description xppad_parent
        on xppta.attributes_parent_id = xppad_parent.attributes_id
Code:
ON xppta.attributes_id = xppad.attributes_name
Du vergleichst eine ID mit einem Namen? Nöp, da steckt garantiert ein Fehler drin.

Aber zur Frage. Die xt_plg_products_attributes_description 2 mal joinen
SQL:
select
    xppta.products_id,
    xppta.attributes_id,
    xppad.attributes_name,
    xppta.attributes_parent_id,
    xppad_parent.attributes_name as parent_attributes_name
from
    xt_plg_products_to_attributes xppta 
    inner join xt_plg_products_attributes_description xppad 
        on xppta.attributes_id = xppad.attributes_id
    left join xt_plg_products_attributes_description xppad_parent
        on xppta.attributes_parent_id = xppad_parent.attributes_id
 
Lösung
Aber zur Frage. Die xt_plg_products_attributes_description 2 mal joinen
Was voraussetzt, dass die Attribute-Parents auch in Tabelle B sind, was ich bezweifel.
Aus der ungenügenden Beschreibung wird mir die Tabellen-Struktur nämlich nicht so ganz klar. Auch nicht aus seinem Beispiel.
Ich sehe da ein "Meter" für Attribute_id (was laut Tabelle A alles Zahlen sein sollen)
 
Zurück