Frage zu einer Abfrage

Werbung:
Stimmt, MySQL scheint das nicht zu können (nuer über Umweg http://www.peterkropff.de/site/mysql/full_outer_join.htm ). Dann teste mal zunächst nur mit einen LEFT JOIN. Der wird dir dann allerdings die Werte nicht liefern, wo ein Messwert mit der ID 20 existiert aber nicht mit ID 10.

Außerdem muss die WHERE Bedingung unbedingt dabei sein, sonst wird alles mögliche miteinander verknüpft.
 
leider funktioniert das nicht. Zum Einen dauert die Abfrage sehr (zu) lange und zum Anderen werden nur Nullen ausgegeben. Eine andere Idee: Wie könnte ich denn nach jedem Import die Werte aus der ersten Tabelle lesen und in eine neue Tabelle einfügen:

Datum - Wert_a_id10 - Wert_a_id20
datum1 - 100 - 130
datum2 - 180 - 190
 
Werbung:
Super Idee wäre auch, den Fehler zu finden warum ein JOIN offensichtlich nur Müll auswirft. Wie viele Datensätze sind in der Tabelle?
Code:
SELECT    t1.datum
        t1.wert_a AS [Wert A zu ID 10]
FROM    tabelle t1
WHERE    t1.ID = 10
Wie viele Datensätze spuckt er hier aus?
Code:
SELECT    t2.datum
        t2.wert_a AS [Wert A zu ID 20]
FROM    tabelle t2
WHERE    t1.ID = 20
Wieviele hier?

Diese beiden Abfragen kombiniert erigbt das, was du suchst. Es kann logisch betrachtet nicht mehr Zeilen haben als die beiden Abfragen zusammen und sollte idealerweise nur so viele haben wie die größere von Beiden.

Das hier ermittelt alle Datnesätze zu denen es sowohl ID 10 als auch ID 20 Messwerte gibt. Eventuell kann man die beiden anderen Fälle, also nur ID 10 oder nur ID 20 mit UNION dazu bringen:
Code:
SELECT    t1.datum,
        t1.wert_a AS [Wert A zu ID 10],
        t2.wert_a AS [Wert A zu ID 20],
        t1.wert_a + t2.wert_a AS Summe
FROM    tabelle t1,
        tabelle t2
WHERE    t1.datum = t2.datum
AND        t1.ID = 10
AND        t2.ID = 20
 
Zurück
Oben