AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [SQL] brauche hilfe bei vielen N:M verkn.
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL] brauche hilfe bei vielen N:M verkn.

Ein Thema von Newbie44 · begonnen am 5. Mai 2008 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Newbie44
(Gast)

n/a Beiträge
 
#1

[SQL] brauche hilfe bei vielen N:M verkn.

  Alt 5. Mai 2008, 15:10
Hallo,

ich bin im moment total überfordert. ich habe mehrere tabellen die in fast nur N:M zusammenhängen stehen.

Ich hab euch mal ein Bild gemacht:

http://img357.imageshack.us/img357/6382/tabellemq1.jpg
http://img357.imageshack.us/img357/6...b761eec4e6.jpg
Also die Hauptabelle ist in der Mitte grün Markiert. Jetzt hab ich ein Problem. Ich möchte einen Select schreiben, der mir alle Informationen dieser Tabellen zusammenfasst, also der mir eine Große tabelle erzeugt wo ich alles rauslesen kann.

Also Komponist und Verlag und alles was dazu gehört. Das Ergebnis sollte dann so aussehen als tabelle:

Titel | Komponist | Interpret | Sendedauer | CD ( von Tabelle fdb_cd) | Komponist(en) | labelcode | marke

wie mach ich das? ich hab noch nie so komplizierte Tabellen gehabt. die tabellen sind auch nicht von mir ich soll jediglich den Select daraus bilden.

Für eure Hilfe wäre ich euch wirklich sehr dankbar.

Gruß und Danke

Schedl
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: [SQL] brauche hilfe bei vielen N:M verkn.

  Alt 5. Mai 2008, 15:58
Ich mach dir mal die Abfrage für eine N:M Beziehung:
SQL-Code:
SELECT fdb_musik.*,
fdb_komponisten.vorname,
fdb_komponisten.nachname,
fdb_komponisten.Webseite
 FROM
fdb_musik LEFT OUTER JOIN fdb_kom ON fdb_musik.musikid=fdb_kom.fdb_musik_musikid
LEFT OUTER JOIN fdb_komponisten ON fdb_komponisten.kid=fdb_kom.fdb_komponisten_kid
Hinweise:
1.) ich habe LEFT OUTER JOIN anstelle von INNER JOIN verwendet, damit auch die Datensätze von Tabelle "fdb_musik" geliefert werden, bei denen kein Komponist eingetragen ist
2.) das Feld "WebSeite" ist viel zu kurz; mach varchar(255) draus
3.) für meinen Geschmack übertreibst du es mit dem Prefix "fdb_"; weniger ist manchmal mehr
4.) weitere Tabellen lassen sich wie oben gezeigt mit LEFT OUTER JOIN verknüpfen. Mach mal mit fdb_label weiter.

Nachtrag:
Bei den Tabellen für die N:M Verknüpfung hast du jeweils einen eigenen Index auf die Fremdschlüsselfelder gelegt.
Es sollte aber nur ein Index, der beide Felder umfasst vorhanden sein. Dieser Index sollte Unique sein, damit doppelte Einfügungen verhindert werden.
Andreas
  Mit Zitat antworten Zitat
Newbie44
(Gast)

n/a Beiträge
 
#3

Re: [SQL] brauche hilfe bei vielen N:M verkn.

  Alt 5. Mai 2008, 16:09
Wow vielen vielen dank für deine hilfe. ich hab leider bislang nur mit 1:n und 1:1 programmiert und noch nicht N:M daher war mir das mit den schlüsseln noch nicht so bekannt.

wie mach ich aus zwei schlüsseln einen unique schlüssel im dbdesigner? wäre dir dankbar wenn du mir das noch erläutern könntest.

und nochmals danke für deine schnelle und nette hilfe.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: [SQL] brauche hilfe bei vielen N:M verkn.

  Alt 5. Mai 2008, 16:13
Zitat von Newbie44:
wie mach ich aus zwei schlüsseln einen unique schlüssel im dbdesigner?
Ich kenne deinen dbdesigner nicht, aber so müsste es gehen:
Zuerst die beiden bestehenden Indexe löschen.
Dann die zwei Felder markieren (Strg- oder Shift-Taste dazu nehmen) und einen neuen Index anlegen.
Andreas
  Mit Zitat antworten Zitat
Newbie44
(Gast)

n/a Beiträge
 
#5

Re: [SQL] brauche hilfe bei vielen N:M verkn.

  Alt 5. Mai 2008, 17:18
so ich hab es jetzt überall mit phpmyadmin löschen und anpassen können, überall bis auf eines ich zittiere mal den fehler:

SQL-Befehl:

ALTER TABLE `fdb_kom` DROP INDEX `123`

MySQL meldet: Dokumentation
#1025 - Error on rename of './usr_s013w420_3/#sql-6391_992e' to './usr_s013w420_3/fdb_kom' (errno: 150)

so einen fehler hatte ich noch nie.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz