Helmuth: MySql - SELECT näher spezifizieren

Hallo Freaks.

Zur Info: MySql 5.0

Ich habe folgende abgespeckte Tabelle:

ID | DATE       | CIRCLE
------------------------
1  | 2008-04-15 | 1
2  | 2008-04-16 | 1
3  | 2008-04-17 | 0
4  | 2008-04-18 | 0
5  | 2008-04-19 | 0
6  | 2008-04-20 | 0
7  | 2008-04-21 | 0
8  | 2008-04-22 | 0
9  | 2008-04-23 | 0

Nun möchte ich in "einer" SELECT-Anweisung EINEN Datensatz mit dem kleinsten DATE und CIRCLE 1 und ZWEI Datensätze mit dem kleinsten DATE und CIRCLE 0.

So sollte das Ergebnis aussehen:

ID | DATE       | CIRCLE
------------------------
1  | 2008-04-15 | 1
3  | 2008-04-17 | 0
4  | 2008-04-18 | 0

Hat jemand einen Ansatz, oder meint ihr es ist besser, es einfach mit zwei SELECT-Anweisnungen umzusetzen.

Vielen Dank schomma
Helmuth

  1. Hat jemand einen Ansatz, oder meint ihr es ist besser, es einfach mit zwei SELECT-Anweisnungen umzusetzen.

    folgendes ist eine versuch wert - gibt aber sicherer bessere und schönere lösungen, je nach mysql-version bekommst du aber einen fehler, dass subquerys in "IN" nicht erlaubt sind

      
    SELECT * FROM tabelle  
    WHERE id IN(SELECT id FROM tabelle WHERE circle = 1 ORDER BY date limit 0,1) OR  
    id IN(SELECT id FROM tabelle WHERE circle = 0 ORDER BY date limit 0,2);  
    
    
  2. Hallo,

    Zur Info: MySql 5.0

    das ist ausreichend.

    So sollte das Ergebnis aussehen:

    ID | DATE       | CIRCLE

    1  | 2008-04-15 | 1
    3  | 2008-04-17 | 0
    4  | 2008-04-18 | 0

    Hat jemand einen Ansatz, oder meint ihr es ist besser, es einfach mit zwei SELECT-Anweisnungen umzusetzen.

    Seit Version 4.0 kennt MySQL UNION.

    Freundliche Grüße

    Vinzenz

    1. BESTENS, das ist was ich gesucht habe.
      Danke!

      Seit Version 4.0 kennt MySQL UNION.