Ich habe folgendes Problem. Anscheinend kann MySQL 5.1. keine INTERSECT Abfragen verwerten. Ich bin selber ein ziemlicher neuling auf dem Gebiet der SQL Sprache.
Hier mein Datensatz
name;wert1;wert2
apfel;1;3
birne;2;6
kirsche;3;7
bannane;4;1
Datensatz enthält bei mir > 1000 Einträge.
Hier das Ziel der Abfrage:
Sortiere das Feld "name" ein mal nach dem Feld "wert1" aufsteigend und ein mal nach dem Feld "wert2" absteigend (sollte 8 Ergebnisse des Feldes "name" ergeben); nehme nur jeweils die ersten zwei Einträge von "name"
Suche die Doppelten Einträge des Feldes "name" in diesen vier ergebnissen und gebe sie wieder.
Bei meiner Datenbank könnte das so aussehen:
SELECT name
FROM table
WHERE 1
ORDER BY wert1 ASC
LIMIT 0, 2
INTERSECT
SELECT name
FROM table
WHERE 1
ORDER BY wert2 DESC
LIMIT 0, 2
Aber das klappt ja nicht.
Mit INNER JOIN kenne ich mich überhaupt nicht aus.
Kennt jemand eine Lösung?
Hier mein Datensatz
name;wert1;wert2
apfel;1;3
birne;2;6
kirsche;3;7
bannane;4;1
Datensatz enthält bei mir > 1000 Einträge.
Hier das Ziel der Abfrage:
Sortiere das Feld "name" ein mal nach dem Feld "wert1" aufsteigend und ein mal nach dem Feld "wert2" absteigend (sollte 8 Ergebnisse des Feldes "name" ergeben); nehme nur jeweils die ersten zwei Einträge von "name"
Suche die Doppelten Einträge des Feldes "name" in diesen vier ergebnissen und gebe sie wieder.
Bei meiner Datenbank könnte das so aussehen:
SELECT name
FROM table
WHERE 1
ORDER BY wert1 ASC
LIMIT 0, 2
INTERSECT
SELECT name
FROM table
WHERE 1
ORDER BY wert2 DESC
LIMIT 0, 2
Aber das klappt ja nicht.
Mit INNER JOIN kenne ich mich überhaupt nicht aus.
Kennt jemand eine Lösung?
Comment