kills Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 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" . Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 30. Oktober 2003 Autor Teilen Geschrieben 30. Oktober 2003 ok danke. ich werds ma versuchen. Viele Grüße kills Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 31. Oktober 2003 Autor Teilen Geschrieben 31. Oktober 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 31. Oktober 2003 Teilen Geschrieben 31. Oktober 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 31. Oktober 2003 Autor Teilen Geschrieben 31. Oktober 2003 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 6. November 2003 Autor Teilen Geschrieben 6. November 2003 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.