Veröffentlicht 4. November 200519 j Hallo, ich sitze an einem kleinen Problem fest. Es gibt 2 Tabellen: "usergroups" und "your_group"... In "usergroups" stehen alle vorhanden Gruppen mit deren vollen Namen, einer Abkürzung (group_tag) und weitere Informationen. In "your_group" steht die eigene Gruppe und befreundete Gruppen, hier habe ich nur die ID der Gruppe aus "usergroups" und einen Rank für die Gruppe gespeichert. Jetzt möchte ich eine Ausgabe aller Gruppen machen, die in "usergroups" stehen. Dabei sollen aber die Gruppen aus "your_group" NICHT mit ausgeben werden. Ich habe kein Plan wie ich das machen kann. Aktuelle habe ich diesen Befehl zusammengebaut: SELECT a.group_tag FROM usergroups a, your_group b WHERE (a.group_id = b.group_id) ORDER by group_tag Leider kann ich damit nur die in "your_group" vorhandenen Gruppen ausgeben. Möchte aber halt das Gegenteil bewirken. Ich hoffe mir kann jemand helfen! mfg
4. November 200519 j SELECT group_tag FROM usergroups where group_id not in SELECT group_id FROM your_group Dazu muss deine DB aber subselects unterstützen. Ansonsten über 2 Abfragen: SELECT group_id from your_group die in einen String in der Form (1, 3, 4) und dann: SELECT group_tag from usergroups where group_id not in (1, 3, 4)
4. November 200519 j Um einen Subselect zu vermeiden, versuch anstatt dessen mal einen Join. Im MSSQL-Server würde ein Left Outer Join zwischen deiner usergroups (a) und your_group ( für die Rows, die er in your_group nicht findet, null liefern. SELECT a.group_tag FROM usergroups a LEFT OUTER JOIN your_group b ON a.group_id = b.group_id WHERE b.group_id is null Bleibt nur die Frage welche DB du verwendest....
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.