Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mysql abfrage

Empfohlene Antworten

Veröffentlicht

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" .

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.

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

ok danke. ich werds ma versuchen.

Viele Grüße

kills

also nochma danke an euch 2 helfer ;)

noch ein problem.

und zwar wie könnte ich diese Tabelle treffend bennen?

mir fällt kein passender name ein.

t1 heisst members

t2 heisst squads

wie könnte ich t3 bennen?

Gruß

kills

Original geschrieben von kills

und zwar wie könnte ich diese Tabelle treffend bennen?

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.

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?

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?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.