1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SQL Abfrage über mehrere Tabellen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Jobybär, 1 Januar 2018.

  1. Jobybär

    Jobybär Neuer Benutzer

    Hallo allerseits,

    bin neu hier und bei SQL Abfragen.
    Muß eine Abfrage über 4 Tabellen machen.
    Tabellen siehe Bild.
    Bekomme aber nicht die richtige Verknüpfung und JOIN hin.
    Es soll je id_product 2 Spalten ausgegeben werden.
    Jede Spalte stellt eine Eigenschaft dar.
    Die Eigenschaft Farbe hat die id_feature =9
    Die Eigenschaft Material hat die id_feature =10

    Produkt ID | Farbe.| Material
    ...........1001 | rot.......| Resin
    ...........1002 | grün...| Metal

    Hab es mit verschiedenen IF schreibweisen versucht.
    IF (ps.id_feature =9, ps_feture_value_lang.value) As 'Farbe',
    IF (ps.id_feature =10, ps_feture_value_lang.value ) As 'Material',

    Bei der LEFT JOIN und der WHERE Anweisung beisst es onehin aus.

    Für Hilfe wäre ich äußerst Dankbar.

    Gruß
    Joachim
     

    Anhänge:

  2. akretschmer

    akretschmer Datenbank-Guru

    Um es mal vereinfacht auszudrücken, Du hast:

    Code:
    test=*# select * from produkt_feature;
     produkt | feature_id | feature_value
    ---------+------------+---------------
      1 |  9 | rot
      1 |  10 | Resin
      2 |  9 | grün
      2 |  10 | Metal
    (4 rows)
    
    und suchst:

    Code:
    test=*# select produkt, string_agg(case when feature_id = 9 then feature_value else null end,',') as farbe, string_agg(case when feature_id = 10 then feature_value else null end,',') as material from produkt_feature group by produkt;
     produkt | farbe | material
    ---------+-------+----------
      1 | rot  | Resin
      2 | grün  | Metal
    (2 rows)
    
    Ist jetzt mit PostgreSQL gemacht. kann MySQL irgendwie aber wohl auch, nur andere Syntax.
     
Die Seite wird geladen...

Diese Seite empfehlen