Matty: MySQL - DINSTINCT und UNION

Beitrag lesen

Hallo

Ich habe ein etwas komische Problem in SQL zu lösen, und bisher ist mir dazu noch nix eingefallen. Ist auch nicht so einfach das ganze an einema
Anwendungsbeispiel zu erklären, deswegen mal etwas abstrakter:

das ist keine gute Idee.

Mhmm versteh ich zwar nicht aber okay.

jetzt möchte ich übergreifend über diese vier Tabellen alle Einträge nach dem Feld datum ( der jeweiligen Tabelle ) sortiert haben mit dem zusätzlichen Feld A.id

... nur leider bekomme ich hier auch doppelte Einträge für a\_id und das will ich natürlich nicht... jede a\_id soll nur EINMAL zurückgeliefert werden.

Ich verstehe beim besten Willen nicht, welche Ergebnismenge Du haben möchtest.
Bitte statte Deine Tabellen mit ein paar Beispieldatensätzen aus und gib dann
das Ergebnis an, das aus diesen Daten resultieren soll - mit der Begründung,
warum das Ergebnis so aussehen soll.

Mhmm naja, fand meine Erklärung eigentlich recht schlüssig.. aber hier dann nun mal mit Daten ..

Tabelle A:
id     |   datum
1      |   100
2      |   150
3      |   200
4      |   250
5      |   300
6      |   350

Tabelle B:
id     |   a_id    |  datum
1      |    2      |  180
2      |    2      |  150

Tabelle C:
id     |   a_id    |  datum
1      |    1      |  90
2      |    3      |  600

Tabelle D:
id     |   a_id    |  datum
1      |    5      |  900
2      |    2      |  150

So mein SQL Query soll jetzt folgendes liefern ( mit ORDER BY datum DESC über die UNIONS .. id ist immer die a_id ..)

id     |  datum
5      |  900
3      |  600
6      |  350
4      |  250
2      |  180
1      |  100

Mein jetziges Query liefert jedoch folgendes (die a_id's kommen Mehrfach vor ...)

id     |  datum
5      |  900
3      |  600
6      |  350
5      |  300   <- doppelt
4      |  250
3      |  200   <- doppelt
2      |  180
2      |  150   <- doppelt
2      |  150   <- doppelt
2      |  150   <- doppelt
1      |  100
1      |  90

jemand eine Idee wie ich das in Pure-SQL lesen kann?

Diesen SQL-Dialekt kenne ich nicht. Deine (zum Verständnis eher hinderlichen)
Backticks lassen mich auf MySQL schließen ...

Mein Beitrag hat einen Betreff... da steht das drin.. o_O
mit "Pure-SQL" meine ich, dass ich keine Lösung will, die mir das ganze noch in der Anwendungslogik filtert, sondern es am besten wäre, meine Anforderung 'pure' in SQL zu lösen.

Ist jetzt klar was ich will?

Danke für die Hilfe und Gruß ,
Matty