Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Entwicklung

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Über Webmasterpro.de

Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.

Datenbanken (SQL) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline

Einfache Abfrage schlägt fehl...

Link zur Antwort auf "Einfache Abfrage schlägt fehl..." von Peter Göbel Peter Göbel, am Mittwoch den 16.06.2010 um 00:24:57

Hallo zusammen.

Langsam weiß ich echt nicht mehr was ich tun soll... eine so einfache Abfrage und ich kriegs nicht gebacken :|

Folgendes:

Ich habe zwei Tabellen. Eine davon (namens Dokumente) mit 2 Spalten (ID & Dokument) und eine davon (Kleidung) mit 3 Spalten (ID & Kleidungsstueck & Anzahl).

Wie man sich jetzt sicher denken kann will ich diese zwei Tabellen über die ID verknüpfen (ist jeweils die gleiche).

Also lautet meine Abfrage:

 
sql
1
2
3
SELECT Kleidung.Kleidungsstueck, Kleidung.Anzahl, Dokumente.Dokument
FROM Kleidung,Dokumente
WHERE Kleidung.ID=Dokumente.ID AND Kleidung.ID="CU1" 

Und jetzt kommt der große Mist raus. Er zeigt mir die gewünschten 3 Spalten (Kleidungsstück, Anzahl, Dokumente). Allerdings schaut das so aus:

T-Shirt___Ausweis

T-Shirt___EC-Karte

T-Shirt___Führerschein

Socken___Ausweis

Socken___EC-Karte

Socken___Führerschein

Hosen___Ausweis

Hosen___EC-Karte

Hosen___Führerschein

Ich habe in beiden Tabellen gleich viel IDs vergeben. Was mach ich falsch? Die gewünschte Ausgabe wäre:

T-Shirt___Ausweis

Socken___EC-Karte

Hosen___Führerschein

Es soll quasi einfach eine Liste ausgegeben werden, in der man von oben bis unten Gegenstände durchschauen kann.

Ich hab mir jetzt schon x-Beispiele angeschaut. Und hab einfach keine Idee was ich falsch mache. Ich will nur so viele Tupel wie ich auch IDs habe.

Habt ihr einen Rat?

_______________________________________________________
Edit:

Hier noch ein paar Screenshots zu Verdeutlichung:

Ergebnis

Tabelle Kleidung

Tabelle Dokumente

Link zur Antwort auf "Einfache Abfrage schlägt fehl..." von Jannik Zschiesche Jannik Zschiesche, am Mittwoch den 16.06.2010 um 08:47:50

So?

 
sql
1
2
3
SELECT `Kleidung`.`Kleidungsstueck`, `Kleidung`.`Anzahl`, `Dokumente`.`Dokument`
 FROM `Kleidung` JOIN `Dokumente` USING (`ID`) WHERE `Kleidung`.`ID` 
LIKE "CU1"

Edit: Jetzt habe ich mir erst die Bilder angesehen.

Ja, die Verknüpfung der Tabellen ist ja beileibe nicht eindeutig. Da IDs mehrfach auftreten, bietet dir SQL bei jeder Verknüpfung alle möglich Kombinationen an, weil es schlicht nicht weiß, was du wie verbinden willst.

Es kann ja nicht wissen, dass T-Shirt zu Ausweis gehört, da die Verknüpfung T-Shirt <-> Ausweis in der Datenbank genauso vorhanden ist wie Socken <-> Ausweis, Pullover <-> Ausweis etc.

Lösung: jeweils unterschiedliche IDs.


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Einfache Abfrage schlägt fehl..." von Peter Göbel Peter Göbel, am Mittwoch den 16.06.2010 um 13:18:46

Gott, wie dumm! War ich blind!
Ich meine, ID steht ja nicht umsonst da.....gott....

Danke Dir! :)