martinbulinski.de

Jeder mit jedem, aber nur einmal Drucken E-Mail
  
Mittwoch, 12. November 2008 um 16:41

Folgendes Problem hatte ich in einem SQL-Kurs. Die Frage schien mir zunächst simpel, aber dann zerbrach ich mir furchtbar den Kopf. Und dabei war es so simpel...

 

Nehmen wir an, King will ein Tischtennis-Turnier durchführen und möchte die Aufstellung der Spiele und Gegner mit SQL generieren.
Ein normaler Cross-Join (kartesisches Produkt) funktioniert, zeigt aber jedes Team zweimal ( X,Y und Y,X). Was nun?

Die Lösung ist eigentlich ganz einfach, ich hab mir allerdings die Finger gebrochen und den Kopf zermartert, bis ich in einem Forum einen Vorschlag erhalten habe.
Wer auch so auf den Kopf gefallen ist wie ich, für den hab ich hier die Lösung:

Eine simple WHERE-Bedingung zeigt jeweils nur ein Tupel an.

select x.ename spieler1, y.ename spieler2 from emp x, emp y
where x.ename<y.ename;

Manchmal sind es die einfachen Sachen…

 
Benutzerbewertung: / 1
SchwachPerfekt 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Anmeldung



Wer ist online

Wir haben 7 Gäste online