Zum Inhalt springen

Mysql abfrage


kills

Empfohlene Beiträge

hi leute,

folgende tabellen:

Gruppe

->id (int)

->name (varchar255)

Mitglieder

->id (int)

->id_gruppe (varchar255)

->name (varchar255)

nun gibt es den fall das ein mitglied in 2 gruppen drinne ist. deshalb hab ich id_gruppe mit varchar belegt und schreibe nun da rein z.b. "1,3". also mitglied ist in gruppe 1 u. 3.

Nun weiss ich nicht wie ich den sql machen soll.

ich wollte abfragen alle mitglieder die in gruppe 1 sind.

bitte helft mir.

Gruß

kills

PS:

is mir klar das das nicht so geht:

select * from members where id_squads = 1; <- das geht ja

select * from members where id_squads = 3; <- aber das nicht

er müsse quasie id_sqauds nach dem vorkommen von "3" in dem ganzen string suchen, nicht ob der string == "3" .

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von kills

nun gibt es den fall das ein mitglied in 2 gruppen drinne ist. deshalb hab ich id_gruppe mit varchar belegt und schreibe nun da rein z.b. "1,3". also mitglied ist in gruppe 1 u. 3.

Das ist aber alles andere als sauber ;)

Du hast eine n:m Beziehung und brauchst eine Zwischentabelle mit den Spalten id, Mitglieds_id, Gruppen_id. Die Tabelle stellt die Verbindung zwischen den Mitgliedern und den Gruppen her.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Wolle

Ich persönlich würde die member_squad nennen. Da ich ansonsten Unterstriche in Tabellennamen vermeide ist klar das es eine Zwischentabelle ist und wozu die gehört.

und wie machst du bei dir dann kenntlich zu welchem "bereich" die tabelle gehört?

z.b. wenn ich ein bereich "news" habe.

dann habe ich bei mir auch eine tabelle vom "Typ" "news" die bei mir dann so z.b. heißen "news_comments".

wie machst du dann solchen zusammenhänge bei dir kenntlich?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Jaraz

Hi,

dafür macht man eine 3 Tabelle (mg) die die n:m Relation abbildet und nur die g_id und m_id enthält.

Abfrage lautet dann einfach:

select * from m,mg where mg.m_id = m.id and mg.g_id = 1;

Gruß Jaraz

hab alles so weit feritig und funktioniert auch super.

Nu ne frage:

wäre es sinnvoll auf diese tabelle in der nur die Verbindungen der 3 Tabellen stehen einen index über z.b. alle 3 spalten zu legen?

bzw überhaupt einen index darauf zu legen?

wie muss ich diesen index legen damit er sinnvoll ist?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...