Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > PHP/MySQL

PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26895, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3323, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 302, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7639, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 19, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 21, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 55, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 144, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 69, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50941, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04.01.2008, 22:06   #1 (Direktlink)
Trubadix
Gast
 
Beiträge: n/a
Standard Frage zur Verschachtelung und zum Ausschluss von Daten

Hallo,
ich habe folgendes Problem.

Ich habe eine Zwischentabelle in der Gruppenids und Userids sind.
Ich möchte jetz z.b. alle User die nicht in der Gruppe 3 + 4 sind.

Wenn ich SELECT * From Tabelle where gruppenid != '3' AND gruppenid !='4'

als Query nehme dann bekomme ich trotzdem User die in den Gruppen sind denn für den Datensatz Userid: 1 Gruppe: 5 tifft ja die Anweisung nicht zu (dabei steht z.b. 2 Datensätze weiter dass er z.B. in Gruppe 3 ist).

Ich hoffe ihr habt mein Problem verstanden und könnt mir eine funktionierende Beispielabfrage posten.

Danke
Trubadix
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 05.01.2008, 10:03   #2 (Direktlink)
War schon mal da
 
Benutzerbild von murray_de_luxe
 
Registriert seit: 19.02.2007
Beiträge: 38
Standard

moin, also wenn ich dich richtig verstanden habe, dann willst du NUR DIE Usernamen ausgeben die keinesfalls in groupid 3 oder 4 z.B. enthalten sind? Also wenn user A in Groupid 3 enthalten ist aber auch in Groupid 7 soll dieser dann NICHT mit ausgegeben werden da er ja in 3 enthalten ist.
Wenn ich das so richtig verstanden habe sollte dir untiges Beispiel weiterhelfen

Code:
SELECT name FROM `test` 
WHERE userid not in (
   SELECT `userid` FROM `test`
   WHERE groupid in(3,4)
) 
ORDER BY name ASC
Dieses gibt aber natürlich den Benutzernamen so oft aus wie er in Gruppenids enthalten ist. Also wenn z.B. User Peter in Gruppe 6 und 9 enthalten ist, so würde Peter auch bei der obigen Abfrage 2x ausgegeben, was bestimmt NICHT Sinn und Zweck der Sache sein soll, denk ich mal. Um den Namen wirklich NUR EINMAL ausgeben zu lassen (somit die doppelten zu entfernen) benutze einfach DISTINCT davor.
Hier die Finale Fassung:

Code:
SELECT DISTINCT name FROM `test` 
WHERE userid not in (
   SELECT `userid` FROM `test`
   WHERE groupid in(3,4)
) 
ORDER BY name ASC
murray_de_luxe ist offline   Mit Zitat antworten
Alt 05.01.2008, 10:17   #3 (Direktlink)
Trubadix
Gast
 
Beiträge: n/a
Standard

Sieht gut aus und klingt auch logisch und mein Problem hast du richtig erkannt.
Ohne es ausprobiert zu haben nenn ich dich schonmal SQL-Gott und sag Danke!
(Falls es wieder erwarten nicht klappen sollte mach ich hier nochmal ein Fass auf..)
  Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > PHP/MySQL

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 02:57 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2