Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

mySQL Verknüpfung von 2 Tabellen





Frage

Hi, zuerstmal: Ich bin noch ganz am Anfang mit Beziehungen und Verknüpfungen, also erklärt mir das bitte ganz einfach ;) Folgendes Problem: Ich habe 2 Tabellen: teilnehmer -------------------- | id | name | clan | -------------------- | 1 | test | 1 | | 2 | lala | 2 | | 3 | lulu | 1 | -------------------- clans ----------------- | id | clanname | ----------------- | 1 | clan1 | | 2 | clan2 | ----------------- Ich will nun eine Abfrage mit PHP machen. Sowas soll angezeigt werden: clan 'clan1' mitglieder: test, lulu clan 'clan2' mitglieder: lala SELECT teilnehmer.name FROM teilnehmer WO clan = aktueller clan. Aktueller Clan ist ne Variable, in der der Name des Clans drinsteht. Er soll also den Primärschlüssel der Tabelle clans mit dem Fremdschlüssel 'clan' in der Tabelle teilnehmer verknüpfen. Wie geht das ?

Antwort 1 von Rangoo

Ähm, ich weiß ja nicht, so recht, wo jetzt das Problem ist... Hast doch eigentlich gesagt, was du brauchst...

aktuellerclan=1
clan: SELECT clanname FROM clans WHERE id=aktuellerclan.
mitglieder: SELECT name FROM teilnehmer,clans WHERE clan = aktuellerclan
aktuellerclan=2
clan: SELECT clanname FROM clans WHERE id=aktuellerclan.
mitglieder: SELECT name FROM teilnehmer,clans WHERE clan = aktuellerclan

Geht natürlich auch mit Schleifen, um aktuellerclan durchzuzählen. Würde Arbeit sparen.

Antwort 2 von Rangoo

Ups, die "clans" sind zuviel...

aktuellerclan=1
clan: SELECT clanname FROM clans WHERE id=aktuellerclan.
mitglieder: SELECT name FROM teilnehmer WHERE clan = aktuellerclan
aktuellerclan=2
clan: SELECT clanname FROM clans WHERE id=aktuellerclan.
mitglieder: SELECT name FROM teilnehmer WHERE clan = aktuellerclan



Antwort 3 von hYpe

Ne, das haste jetzt falsch verstanden.

Das soll rauskommen:

clan 'clan1'

mitglieder: test, lulu

clan 'clan2'

mitglieder: lala

Ich will die Mitglieder auslesen, die in einem bestimmten clan sind.
Und dabei halt die beiden Tabellen über die id's verknüpfen.






Antwort 4 von Rangoo

In dem Fall kannst du aber die Banken nicht über die ID's verknüpfen, weil die sich in meinen Augen auf zwei völlig verschiedene Dinge beziehen:
Tabelle 1: ID eines Spielers mit Name und Clan-ID
Tabelle 2: Name eines Clans
An sich verlangst du eher eine Verbindung der ID von der Clannummer aus Tabelle 1 mit der ID aus Tabelle 2.
Beide Tabellen so wie du willst miteinander verknüpfen könntest du nur, wenn in Tabelle 1 lediglich ID und Name steht und in Tabelle 2 dann zu der ID der entsprechende Clan.

Oder sehe ich das falsch? Wo sind hier die logisch denkenden Datenbank-Freaks von Access und Co.???

Antwort 5 von hYpe

"An sich verlangst du eher eine Verbindung der ID von der Clannummer aus Tabelle 1 mit der ID aus Tabelle 2. "

Ja genau das mein ich doch ...

Habs jetzt schon selber rausgefunden, in dem ich das Ding in Access gebastelt hab und dann den SQL Code genommen habe.


SELECT teilnehmer.username FROM clans INNER JOIN teilnehmer ON clans.clan_id = teilnehmer.clan3 WHERE clans.clanname = '$aktuellerclan'