Datenanzeige aus einer MySql Query

boyben

Mitglied
Folgende Abfrage:

SQL:
CREATE TEMPORARY TABLE tmp1_400 SELECT * FROM `t_400` WHERE `lfdnr` = '044';

SELECT t_030_1.bez AS Kriterium, t_030_2.bez AS Kriteriumsbezeichnung 
FROM tmp1_400 
LEFT JOIN t_050 ON tmp1_400.kritnr = t_050.kritnr 
LEFT JOIN t_030 AS t_030_1 ON t_050.beznr = t_030_1.beznr 
LEFT JOIN t_052 ON tmp1_400.kritwert = CONVERT( t_052.`key` , signed ) 
LEFT JOIN t_030 AS t_030_2 ON t_052.beznr = t_030_2.beznr 
WHERE (t_050.tabnr = t_052.tabnr) AND t_030_1.sprachnr = '1' AND t_030_2.sprachnr = '1' GROUP BY t_030_2.bez

Ergebniss:
HTML:
<table>
 <tr>
 <th>Kriterium</th>
 <th>Kriteriumsbezeichnung</th>
 </tr>
    </tr>
    <td>Getriebeart</td>
    <td>Automatikgetriebe </td>
</tr>
            
    <td>Getriebeart</td>
    <td>Schaltgetriebe</td>
</tr>
            
    <td>Getriebeart</td>
    <td>Vollautomatik</td>
</tr><td>Fahrzeugausstattung</td>
    <td>für Fahrzeuge mit Klimaanlage</td>
</tr>
</table>

Ziel ist es eine Tabelle zu erhalten die etwa so aus sieht:
HTML:
<table width="450" border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td>Getriebeart:</td>
            <td>Automatikgetriebe, Schaltgetriebe, Vollautomatik </td>
          </tr>
          <tr>
            <td>Fahrzeugaustattung:</td>
            <td>für Fahrzeuge mit Klimaanlage </td>
          </tr>
        </table>

Also die Getriebeart kommt mehrfach vor soll aber nur einmal aufgeführt werden und dann die entsprechenden Werte dazu einfach hintereinander, per Komma getrennt!

Wie wäre soetwas lösbar? Per Arrays ?
Ich weiss momentan einfach nicht wie ich das lösen soll!
Stehe da mometan voll auf dem Schlauch!
Bitte helft mir!
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

eventuell hilft dir die Funktion GROUP_CONCAT()
weiter.

ansonsten solltest du dann nach t_030_1_bez gruppieren und nicht nach t_030_2_bez wenn ich deinen Code richtig verstehe. Also versuch es mal etwa so:

SQL:
SELECT t_030_1.bez               AS Kriterium, 
       GROUP_CONCAT(t_030_2.bez) AS Kriterienbezeichnungen
  FROM ...
 GROUP BY t_030_1.bez;

Und bitte beim nächsten mal deine Abfrage formatieren mit SQL-Tags .

Markus
 
Zurück