MySQL: Query Ergebnis für neuen Query

genji3000

Grünschnabel
Hallo,

Ich möchte das Ergebnis aus einem query für einen neuen query benutzen. Ich würde das gerne in nur einem query machen.

Zuerst hole ich mir mit diesem query aus 2 Tabellen die groupID, wo ich Moderator und Mitglied bin:

SELECT groupID as mygroups FROM groups WHERE moderatorID = 13
UNION
SELECT groupID as mygroups FROM member_groups WHERE memberID = 13

Nun möchte ich mit einem neuen query alle Gruppen rausfinden, wo ich kein Mitglied bin:
SELECT groupID FROM groups WHERE groupID != mygroups

Leider funktioniert das so nicht. Wie kann ich das besser machen?
 
Hi,

erstens müsste das wenn schon WHERE groupID NOT IN mygroups heißen, zweitens funktioniert aber auch das nicht. :D

Du könntest höchstens die gleiche Abfrage noch einmal in einer Subquery benutzen.

So müsste es auch gehen:

SQL:
select groupID from 
   (
      (select groupID, moderatorID as userID from groups)
      UNION
      (select groupID, memberID as userID from member_groups)
   ) as result
   group by groupID 
      having SUM(userID = 13) = 0

LG
 
Hi,

danke für deine Antwort. Das funktioniert.
Allerdings brauche ich noch andere Spalten.

SELECT g.groupID, g.group_name, g.group_description, gc.categories_name
FROM groups g, groups_categories gc, member_groups mg
WHERE groupID = Ergebnis aus deiner Abfrage:
SELECT groupID FROM

(

(SELECT groupID, moderatorID AS userID FROM groups)

UNION

(SELECT groupID, memberID AS userID FROM member_groups)

) AS result

GROUP BY groupID

HAVING SUM(userID = 13) = 0

Wie kann ich die zusätzlichen Spalten hier einbauen?
 
Hi,
ich habe das jetzt mit einem Subquery gelöst.

SELECT g.groupID, g.group_name, g.group_description, gc.categories_name
FROM `groups` g, member_groups mg, groups_categories gc
WHERE g.groupID != ALL (SELECT groups.groupID FROM groups JOIN member_groups ON groups.groupID = member_groups.groupID WHERE member_groups.memberID = '" . addslashes ( $memberID ) . "'
)
AND gc.categoriesID = g.categoriesID
GROUP BY g.groupID

:)
 
Zurück