SQL-Query Denkblockade, wahrscheinlich JOIN?

Every_b

Mitglied
Hallo Freunde,

meine Basiskenntnisse stoßen derzeit an ihre Grenzen, oder ich habe einfach ein Problem mit der Logik:

Ich kriege keinen vernünftigen SQL-Query zusammen, JOIN oder UNION müsste stattfinden, aber die Logik ist mir noch nicht ins Blut übergegangen, sodass ich eure Hilfe benötige.

Folgender Sachverhalt ist gegeben:
In einer PHP-Funktion möchte ich ausgeben, in welchen Gruppen sich ein User befindet.
Dazu wird dieser Funktion die User_ID bereits übermittelt.
PHP:
function get_all_groups($user_id){
...
}

-In der Tabelle "in_group" ist festgelegt, welche User in welchen Gruppen sind.
-In der Tabelle "group" die Gruppen selbst.
Im Anhang befindet sich ein Bild der Struktur.

Mein Query muss nun also folgendes tun:
Finde in Tabelle "in_group" alle "group_id" wo die "user_id" = "1" ist.
Danach finde in Tabelle "group" alle "group_name" aus den eben gefundenen "group_id".

Sodass ich in $results dann ein Array aus allen Namen der Gruppen habe (im besten Fall sogar noch die ID's als Index), in welcher sich der User befindet.

Zusatzinfo: Die einzelnen ID's (group_id, user_id) sind über foreign-keys miteinander verknüpft.
MySQL-Version: 5.0.8
Datenbanksystem: InnoDB

Ich danke euch und hoffe ihr könnt mir auf die Sprünge helfen.
Besten Dank euch und nen schönen Abend,

Every
 

Anhänge

  • database.jpg
    database.jpg
    30,7 KB · Aufrufe: 5
Zuletzt bearbeitet:
INNER JOIN ist das was du suchst.
Du verbindest die 2 Tabellen und setzt ein Filter

Und damit sicher keine Datensätze doppelt kommen, habe ich gleich noch ein DISTINCT angehängt
SQL:
SELECT DISTINCT
	group.group_id,
	group.group_name
FROM
	in_group
	INNER JOIN group
		ON in_group.group_id = group.group_id
WHERE
	in_group.user_id = 1;
 
Zuletzt bearbeitet von einem Moderator:
Das ist ja der Wahnsinn!
Ich verstehe das Statement zwar noch nicht wirklich im Detail, aber es funktioniert genau so wie es muss.

Deshalb wird das nun bis ins Detail studiert!
Danke dir vielmals! Sollte ich mal in der Nähe von Winterthur sein, bringe ich einen Obstkorb vorbei ;)

Mensch, Leute wie dich bräuchte ich an meiner Seite ;)
Nochmal Danke!

Beste Grüße und eine gute Nacht,
Every
 

Neue Beiträge

Zurück