Ergebnis 1 bis 5 von 5

Thema: MariaDB Query Anfängerproblemchen

  1. #1
    Youngster
    Registriert seit
    21.10.2018
    Beiträge
    11
    Danke
    2
    Bekam 0 mal "Danke" in 0 Postings

    Standard MariaDB Query Anfängerproblemchen

    Hi,

    bin neu hier und relativ neu bei MariaDB und habe natürlich ein Problem, naja wohl eher ein Problemchen...
    Also folgendes:
    Tabelle data mit vier Spalten ID, USER_ID, FIELD_ID, VALUE.
    ID gibt jeder Zeile einen festen Wert,
    USER_ID ist 11 mal der gleiche Wert, der jeweils einer FIELD_ID zugeordnet ist, VALUE ist der eigentliche Wert. Das wiederhohlt sich fortlaufend. Also jeder Kunde (USER_ID) besteht aus 11 Einträgen (FIELD_ID von 1 bis 11) deren Werte wie Anschrift, Tel. etc in VALUE stehen.
    Mein Problem: Wie bekomme ich eine Abfrage hin, bei der Kd.Nr. Vorname, Nachname, Telefon in einer Zeile stehen?
    Mein Ansatz:
    Code:
    SELECT `USER_ID` `Kd. Nr.` , (select `VALUE` where `FIELD_ID` = 7) as  Vorname, (select `VALUE` where `FIELD_ID` = 9)  as Nachname, (select  `VALUE` where `FIELD_ID` = 6) as Telefon FROM `data` where `USER_ID` = 967
    Liefert mir zwar die benötigten Daten, aber halt in 11 Zeilen.
    Sorry für so ein kleines Anfängerproblem, aber könntet ihr mir trotzdem helfen?
    Geändert von Arne Drews (22.10.2018 um 10:21 Uhr) Grund: MOD: Code-Tags zugefügt

  2. #2
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.579
    Danke
    23
    Bekam 137 mal "Danke" in 136 Postings

    Standard AW: MariaDB Query Anfängerproblemchen

    Machbar wäre das in der Form, dass Du die einzelnen Werte per JOIN verknüpfst:
    Code:
    SELECT
    	Kunde.`USER_ID` AS KdNr,
    	Vorname.`Value`,
    	Nachname.`Value`,
    	Telefon.`Value`
    
    
    from
    	`data` AS Kunde
    
    
    INNER JOIN
    	`data` AS Vorname on Vorname.`USER_ID` = Kunde.`USER_ID` and Vorname.FIELD_ID = 7
    
    
    INNER JOIN
    	`data` AS Nachname on Nachname.`USER_ID` = Kunde.`USER_ID` and Nachname.FIELD_ID = 9
    
    
    INNER JOIN
    	`data` AS Telefon on Telefon.`USER_ID` = Kunde.`USER_ID` and Telefon.FIELD_ID = 6
    
    
    WHERE
    	Kunde.USER_ID = 967
    Das ist allerdings nicht sehr flexibel, wenn mal Felder dazukommen o.ä.
    Die Alternative dazu wäre PIVOT, was allerdings etwas komplexer ist.
    Geändert von Arne Drews (22.10.2018 um 10:28 Uhr)

  3. Folgende User finden die Antwort von Arne Drews gut:


  4. #3
    Youngster
    Themenstarter

    Registriert seit
    21.10.2018
    Beiträge
    11
    Danke
    2
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MariaDB Query Anfängerproblemchen

    Ähm, bringt aber immer noch 11 Zeilen, wenn jetzt aber auch in jeder Zeile das richtige Ergebnis steht.....
    Die Spaltenüberschriften heissen jetzt aber alle Value, bis auf die Erste, die heisst noch Kd.Nr.

    - - - Aktualisiert - - -

    Mit den folgenden Änderungen geht es:
    Code:
    SELECT
        Kunde.`USER_ID` AS KdNr,
        Vorname.`Value` As Vorname,
        Nachname.`Value` AS Nachname,
        Telefon.`Value` AS Telefon
    
    
    from
        `data` AS Kunde
    
    
    INNER JOIN
        `data` AS Vorname on Vorname.`USER_ID` = Kunde.`USER_ID` and Vorname.FIELD_ID = 8
    
    
    INNER JOIN
        `data` AS Nachname on Nachname.`USER_ID` = Kunde.`USER_ID` and Nachname.FIELD_ID = 9
    
    
    INNER JOIN
        `data` AS Telefon on Telefon.`USER_ID` = Kunde.`USER_ID` and Telefon.FIELD_ID = 6
    
    
    WHERE
        Kunde.USER_ID = 967
    GROUP BY Kunde.USER_ID
    Also das GROUP BY wars dann wohl.
    Vielen Dank soweit. Das war allerdings erst die halbe Miete. Die eigentliche Abfrage erstreckt sich über 2 Tabellen. Mal schauen, ob es da auch noch läuft....
    Geändert von Schnurze (22.10.2018 um 20:00 Uhr)

  5. #4
    Youngster
    Themenstarter

    Registriert seit
    21.10.2018
    Beiträge
    11
    Danke
    2
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MariaDB Query Anfängerproblemchen

    Ist leider so, wie befürchtet:

    Beim Verknüpfen mit der 2. Tabelle über Kunde.USER_ID wird dank der GROUP BY halt nur noch ein Datensatz angezeigt und ohne halt jeweils 11.....

    Noch irgendwelche Ideen?

  6. #5
    Youngster
    Themenstarter

    Registriert seit
    21.10.2018
    Beiträge
    11
    Danke
    2
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MariaDB Query Anfängerproblemchen

    Mit Blindheit und Unwissenheit geschlagen....

    Funktioniert natürlich einwandfrei mit GROUP BY Kunde.USER_ID, eingang (Alleinstellungsmerkmal aus 2. Tabelle).

    Vielen, vielen Dank
    Geändert von Schnurze (24.10.2018 um 10:15 Uhr)

Ähnliche Themen

  1. Update Query
    Von Unregistriert im Forum Datenbank Forum - MySQL und andere Datenbanksoftware
    Antworten: 2
    Letzter Beitrag: 22.02.2011, 14:07
  2. http://query.ie.kikin.com/query-server/K/Query/ im Webalizer
    Von Unregistriert im Forum Webhoster - Provider - (free) Webspace - Server - Domain
    Antworten: 2
    Letzter Beitrag: 11.02.2011, 15:33
  3. mysql query
    Von Nico1994 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 16.11.2010, 20:22
  4. VB Dataset, Query
    Von Unregistriert im Forum Forum für alle anderen Programmiersprachen
    Antworten: 1
    Letzter Beitrag: 12.05.2009, 00:01
  5. sql query
    Von FaFoo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 11.06.2008, 16:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •