| one | two |
-------------
| A | 1 |
| A | 2 |
| B | 1 |
| B | 3 |
| C | 1 |
| C | 4 |
Ich möchte keine Wiederholungen in einer Spalte in einer Abfrage erhalten, so dass die Standard SELECT DISTINCT one,two FROM table;
oder SELECT * FROM table GROUP BY one,two;
funktioniert nicht ganz, weil es nach distinct in allen Zeilen sucht, was in diesem Fall alle 6 Zeilen ergeben würde.
Idealerweise suche ich nach:
| one | two |
-------------
| A | 1 |
| B | 3 |
| C | 4 |
In PHP (etc.) würde ich dies einfach mit einem Array für jede Spalte tun, und wenn eine Spalte zuvor verwendet wurde, dann überspringen Sie die Zeile. Ich bin mir allerdings nicht sicher, wie man das in MySQL implementiert.
SELECT * FROM (SELECT * FROM table GROUP BY one) GROUP BY two
- funktioniert fast. Aber da die äußere Abfrage nicht alle Alternativen sieht, werden gültige Optionen übersehen, d.h. die innere Abfrage wird auf A,B,C kollabieren, könnte aber auch auf todo 1s für Spalte zwei, was bedeuten würde, dass die zweite GROUP BY dann selbst auf eine Zeile zusammenfallen würde!
Ich weiß, dass die Reihenfolge der Duplizierung Überprüfung eine Auswirkung auf die genaue Zeilen zurückgegeben haben wird - nicht besorgt über das - ich will nur einen guten Querschnitt der Zeilen mit minimal ähnlichen Zeilen.