MySQL: Einträge als Spaltennamen (tabelle drehen)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySQL: Einträge als Spaltennamen (tabelle drehen)

    Hey,

    ich habe zwei Tabellen, die ich miteinander verbinden möchte. Dabei habe ich ein klassisches Problem: Ich will aus der zweiten Tabelle Einträge als Spaltenname definieren. Ich habe zu der Thematik auch einiges gefunden. Aber wirklich zufrieden gestellt bin ich noch nicht - das mag aber auch daran liegen, das ich nicht genau weiß nach was ich suchen soll.


    Quellcode

    1. main:
    2. +----------+
    3. | ID |
    4. +----------+
    5. | barfoo |
    6. | c90ab702 |
    7. | foobar |
    8. +----------+
    9. partitions:
    10. +----------+------------------------------+------------+-----------+
    11. | ID | PARTITION | TOTAL_SIZE | FREE_SIZE |
    12. +----------+------------------------------+------------+-----------+
    13. | 060a1451 | /dev/mapper/system-tmp | 2033488 | 1895728 || 060a1451 | /dev/sda1 | 4956284 | 3191820 || 060a1451 | /dev/mapper/system-samba | 15251440 | 10486332 |
    14. Was ich möchte:
    15. +----------+-------------------------+-----------------+----------------+---------------+-----+
    16. | main.ID | TOTAL_SIZE_SAMBA | FREE_SIZE_SAMBA | TOTAL_SIZE_TMP | FREE_SIZE_TMP | ... |
    17. +----------+-------------------------+-----------------+----------------+---------------+-----+
    18. | 123 | 12380194 | 12398 | 91282 | 9127 | ... |
    19. | 133 | 12380194 | 12398 | 91282 | 9127 | ... |
    20. +----------+-------------------------+-----------------+----------------+---------------+-----+
    Alles anzeigen



    Dabei ist wichtig zu wissen: Ich kenne die Namen der verschiedenen Partitionen nicht.
    Ist das in einer SQL-Abfrage überhaupt möglich (und vor allem sinnvoll)? Oder löse ich das besser in einer Programmiersprache (ich verarbeite die Daten danach mit PHP).

    Grüße,
    Dominic
    My lovely mister singing club...
  • Das Stichwort lautet übrigens: MySQL Pivot Table.

    Drei Varianten:
    1) entweder du teilst PHP die Spaltennamen mit schreibst mit der Information das Query um (Pivot wird also weiterhin in MySQL gemacht)
    2) du drehst das ganze allein über PHP um
    3) du schreibst dir einen generischen Pivot Helper in PHP und MySQL

    CREATE TEMPORARY TABLE pivot_random [dein original query]
    SHOW CREATE TABLE pivot_random
    php query bauen
    SELECT * FROM pivot_random