Mit sqlite3, habe ich eine Tabelle, die wie folgt aussieht:Wie überspringe ich ein übereinstimmendes Ergebnis einer Unterabfrage?
+---------+-----------------+----------+-----------+--------+
| ArtId | Location | ArtistID | Title | Size |
+---------+-----------------+----------+-----------+--------+
| 3 | China | 400 | birds | small |
| 4 | Samoa | 670 | stars | large |
| 5 | Chile | 427 | clouds | medium |
| 6 | US | 427 | clouds | small |
| 7 | France | 123 | collage | small |
| 8 | Spain | 123 | collage | large |
| 9 | Belarus | 123 | collage | medium |
+---------+-----------------+----------+-----------+--------+
Ich habe eine Abfrage, wo die einzigen Ergebnisse sind diejenigen mit doppelten Titel und Künstler alle Ergebnisse produziert:
SELECT *
FROM LiveArt c1, (SELECT Title, ArtistID FROM LiveArt GROUP BY Title, ArtistID) c2
WHERE c1.Title = c2.Title AND c1.ArtistID = c2.ArtistID
zu produzieren die folgende Tabelle:
+---------+-----------------+----------+-----------+--------+
| ArtId | Location | ArtistID | Title | Size |
+---------+-----------------+----------+-----------+--------+
| 5 | Chile | 427 | clouds | medium |
| 6 | US | 427 | clouds | small |
| 7 | France | 123 | collage | small |
| 8 | Spain | 123 | collage | large |
| 9 | Belarus | 123 | collage | medium |
+---------+-----------------+----------+-----------+--------+
Was ich zurück will, ist dies:
+---------+-----------------+----------+-----------+--------+
| ArtId | Location | ArtistID | Title | Size |
+---------+-----------------+----------+-----------+--------+
| 6 | US | 427 | clouds | small |
| 8 | Spain | 123 | collage | large |
| 9 | Belarus | 123 | collage | medium |
+---------+-----------------+----------+-----------+--------+
Wie kann ich meine Abfrage optimieren (das erste übereinstimmende Ergebnis überspringen)?
definieren SQL funktioniert in Form von Mengen und es gibt keine Vorstellung von der Reihenfolge in einer Menge. Möchten Sie das übereinstimmende Ergebnis mit dem niedrigsten ArtId-Wert überspringen? –
Und warum wird die 'ArtId = 9' nicht übersprungen? –
@AdamMihalcin, das verstehe ich. Ich möchte im Grunde eines der Duplikate ausgelassen/übersprungen. Ich interessiere mich nicht wirklich für das, also dachte ich, dass es Sinn macht, das erste Duplikat zu überspringen und den Rest auszuwählen. –