Announcement

Collapse
No announcement yet.

In MySQL aus einer Ergebnisliste bestimmte Werte extrahieren

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • In MySQL aus einer Ergebnisliste bestimmte Werte extrahieren

    Hallo zusammen,

    in Datenbanktabelle 'record' finden sich diverse Aufzeichnungen. Eine Aufzeichnung kann vom Typ 1 bis 10 sein, wobei sich dieser in unregelmässigen Abständen ändert. Dafür gibt es die Tabelle 'recordType' mit folgendem Aufbau:

    id
    recordId
    typeId
    validFrom

    Wird eine neue Aufzeichnung angelegt, ist in dem Datensatz in 'recordType' 'validFrom' NULL.
    Nun ist es aber auch so, dass der Typ teilweise schon im Voraus bekannt ist und entsprechend erfasst wird .Somit kann in der Tabelle 'recordType' zu jeder Aufzeichnung auch mindestens ein Datensatz mit zukünftigem Datum stehen.
    recordType:
    Code:
    id 	recordId 	typeId 	validFrom
    1 	1 		1 	NULL
    2 	2 		1 	NULL
    3 	1 		2 	2010-10-18
    4 	1 		3 	2010-10-29
    5 	2 		2 	2010-11-30
    6 	3 		1 	NULL
    7 	1 		4 	2010-10-24
    8 	1 		5 	2010-11-01
    9 	4 		2 	NULL
    Nun kann ich mit
    Code:
    SELECT typeId FROM `recordType` WHERE recordId=1 AND (validFrom < CURDATE() OR validFrom is NULL) ORDER BY validFrom DESC LIMIT 0,1
    den aktuellen Typ einer Aufzeichnung abfragen.

    Aber wie realisiere ich ein halbwegs performantes SQL Statement, dass mit alle Aufzeichnungen ausgibt, die aktuell (also im Augenblick der Abfrage) von einem betsimmten Typ sind?

    Beispiele:

    Gemäß obiger Tabelle müsste ich (wenn heute der 2010-10-19 ist) bei
    typeId 1 die Aufzeichnungen mit folgenden Id's erhalten: 2
    typeId 2 die Aufzeichnungen mit folgenden Id's erhalten: 1, 4


    Ich hoffe, ich konnte das Problem halbwegs anschaulich erklären.

    vg
    Bytecounter

  • #2
    Crosspost

    http://www.administrator.de/In_MySQL...trahieren.html
    Christian

    Comment


    • #3
      Es schwirren aber nicht alle Gurus in allen Foren rum ;-)

      Comment


      • #4
        Originally posted by bytecounter View Post
        Es schwirren aber nicht alle Gurus in allen Foren rum ;-)
        Trotzdem wird Crossposting nicht toleriert => Close!
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X