Armin: MYSQL , Select / Join ? Wie ?

Hallo,
Ich habe ein Problem mit MYSQL. Mir wurde von Jemanden gesagt ich solle die MYSQL Tabelle nach dem nachfolgende  Muster anlegen lassen und verweden.

schein_id  zahl  tag  uni  besitzer
1  16  6  close  1
1  19  6  close  1
1  22  6  close  1
1  29  6  close  1
1  31  6  close  1
1  39  6  close  1
2  12  6  close  1
2  16  6  close  1
2  20  6  close  1
2  22  6  close  1
2  34  6  close  1
2  44  6  close  1
3  14  6  close  1
3  19  6  close  1
3  24  6  close  1
3  28  6  close  1
3  33  6  close  1
3  40  6  close  1

Es soll eine Art Lotto Spiel sein.
schein_id = Zahl des Lottoscheins
zahl = die abgegebenen Zahlen
tag = 6für Samstag 3 für Mittwoch
besitzer = id der besitzers der es abgegeben hat

Jetzt möchte ich dem Benutzer aber Zeigen was er für Tipps abgegeben hat, Also welche Zahlen.
Wie kann ich das den nun Realisieren ?

Wie bekomme ich nun die Ausgabe wie Folgt->
Schein Nr 1: 16-19-22-19-31-39
Schein Nr 2: 12-16-20-22-34-44
etc etc

Mit SELECT * FROM lotto\_zahlen WHERE (besitzer = '1' ) GROUP BY schein_id
bekomme ich immer nur eine Zahl raus und die Anderen 5 Zahlen fehlen.

Das ganze soll irgendwie über das Join event gehen ???

kann mir da jemand helfen ?

Gruss Armin

  1. yo,

    Mir wurde von Jemanden gesagt ich solle die MYSQL Tabelle nach dem nachfolgende  Muster anlegen lassen und verweden.

    hat derjenige dir nicht auch erklärt, warum es so sein soll, bzw. weisst du es ?

    Wie bekomme ich nun die Ausgabe wie Folgt->
    Schein Nr 1: 16-19-22-19-31-39

    mit der aggregat-funktion GROUP_CONCAT, die mysql beherscht, fragt sich welche version du benutzt.

    Mit SELECT * FROM lotto\_zahlen WHERE (besitzer = '1' ) GROUP BY schein_id
    bekomme ich immer nur eine Zahl raus und die Anderen 5 Zahlen fehlen.

    jedes andere dbms würde dir dafür eine fehlermeldung um die ohren schmeissen, nur mysql meint besonderns "klug" sein zu müssen und gibt dir mehr oder weniger zufällige ergebnise wieder.

    Das ganze soll irgendwie über das Join event gehen ???

    ja, das geht, bei 6 Zahlen mit einem 5 fachen selfjoin. ich würde aber GROUP_CONCACT bevorzugen.

    Ilja

  2. Hallo

    Ich habe ein Problem mit MYSQL. Mir wurde von Jemanden gesagt ich solle die MYSQL Tabelle nach dem nachfolgende  Muster anlegen lassen und verweden.

    schein_id  zahl  tag    uni  besitzer
    1            16    6  close    1
    1            19    6  close    1
    1            22    6  close    1
    1            29    6  close    1
    1            31    6  close    1
    1            39    6  close    1

    Jetzt möchte ich dem Benutzer aber Zeigen was er für Tipps abgegeben hat, Also welche Zahlen.
    Wie kann ich das den nun Realisieren ?

    Wie bekomme ich nun die Ausgabe wie Folgt->
    Schein Nr 1: 16-19-22-19-31-39
    Schein Nr 2: 12-16-20-22-34-44
    etc etc

    Mit SELECT * FROM lotto\_zahlen WHERE (besitzer = '1' ) GROUP BY schein_id
    bekomme ich immer nur eine Zahl raus und die Anderen 5 Zahlen fehlen.

    Die GROUP-BY-Klausel ist hier schon angebracht im Gegensatz zu SELECT *, die gerade in Verbindung mit GROUP-BY tödlich ist. Schließlich musst Du nach _jeder_ Spalte gruppieren, die nicht in der GROUP-BY-Klausel aufgeführt ist.

    Das ganze soll irgendwie über das Join event gehen ???

    Nein, GROUP_CONCAT() hilft Dir weiter.

    Freundliche Grüße

    Vinzenz