Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst JOIN über 5 Tabellen

Mitglied: hakkbart

hakkbart (Level 1) - Jetzt verbinden

20.04.2012 um 22:04 Uhr, 3260 Aufrufe, 5 Kommentare

Es sollen 5 Tabellen mit einem JOIN verknüpft werden.

Abend ...

Ich stehe vor einem mir unlösbarem Problem mit einer Datenbankabfrage.

In einem Feedbackportal können User Fragebögen beantworten. Diese setzen sich aus verschiedenen Fragen-Antwort-Kombinationen, aus einer Tabelle "Fragenpool" und "Antwortenpool", zusammen.
Jeder Nutzer ist dabei einer Klasse zugeordnet, welcher wiederum verschiedene Fragebögen zugeordnet werden können.

Folgende Tabellen sind vorhanden:

t_user
t_klasse
t_fragebogen
t_fragenkatalog
t_antwortkatalog
t_frage_antwort
t_antwort_user

Mir ist nicht ganz klar wie ich hier ansetzen muss.
Die für den User angelegten bzw. freigeschalteten Fragebögen bekomm ich abgefragt, wie ich dann allerdings weiter vorgehe ...

Hat evtl- jemand nen Tipp wie ich das sinnvoll angehe?

MFG
Mitglied: scan5415
20.04.2012 um 22:33 Uhr
Abend,

Was für eine Datenbank verwendest du? -> Ich gehe jetzt einfach mal von einer MS SQL DB aus.

In einem Feedbackportal können User Fragebögen beantworten. Diese setzen sich aus verschiedenen Fragen-Antwort-Kombinationen, aus einer Tabelle "Fragenpool" und "Antwortenpool", zusammen.
Leider verstehe ich den ersten Satz nicht. Wie setzt sich das genau zusammen?

Jeder Nutzer ist dabei einer Klasse zugeordnet, welcher wiederum verschiedene Fragebögen zugeordnet werden können.
01.
SELECT *  
02.
FROM t_user T0 
03.
INNER JOIN t_klasse T1 ON T0.klasseID = T1.klasseID 
04.
INNER JOIN t_fragebogen T2 ON T1.klasseID = T2.klasseID
Das sollte so schnell, schnell funktionieren (habe es nicht getestet) oder dich auf eine richte Spur bringen.

Grüsse

scan
Bitte warten ..
Mitglied: pi314
23.04.2012 um 20:52 Uhr
Abend..

zwar wird es hier nicht essentiell sein, dennoch wäre es interessant, welche DB du verwendest, da geb' ich scan5415 recht.
Zum anderen sind die Informationen etwas spärlich.

  • Wie sind denn die Tabellen aufgebaut?
  • Welche Spalten / FKs gibt's?
  • Oder sind das Tabellen von irgendeinen Framework?

Du hast nur Tabellennamen aufgelistet und in Prosa ein paar Zusammenhänge beschrieben.
Aufgrund deiner Erklärung tippe ich mal:

  1. t_user hat eine 1:1 Beziehung zu t_klasse
  2. t_klasse hat 0:n Beziehung zu t_fragebogen
  3. t_frage_antwort ist die Verknüpfungstabelle für die n:m Beziehung zwischen t_fragenkatalog und t_antwortkatalog

Wie man die nun genau verknüpft, könnte man mit Hilfe eines Datenmodells sagen. Zumindest der Tabellenaufbau würde schon mal weiterhelfen.


so long,
pi314
Bitte warten ..
Mitglied: hakkbart
24.04.2012 um 20:38 Uhr
ich hoffe das bringt ein wenig licht ins dunkel ...

http://www.pic-upload.de/view-13915280/db.jpg.html
Bitte warten ..
Mitglied: pi314
25.04.2012 um 11:41 Uhr
Hi,

wenn ich's richtig verstanden habe, willst du die Fragen und Antworten für einen User ausgeben.
Probier' doch mal folgendes:
select u.vorname, u.name 
     , f.frname 
     , fr_teil1.frage1, fr_teil1.antwort1 
     , fr_teil2.frage2, fr_teil2.antwort2 
     , fr_teil3.frage3, fr_teil3.antwort3 
     , fr_teil4.frage4, fr_teil4.antwort4 
     , fr_teil5.frage5, fr_teil5.antwort5 
     , fr_teil6.frage6, fr_teil6.antwort6 
     , fr_teil7.frage7, fr_teil7.antwort7 
     , fr_teil8.frage8, fr_teil8.antwort8 
  from t_user u 
       join t_antwortuser au on (au.user_id = u.id) 
       join t_fragebogen f on (f.id = au.fragebogen_id) 
       join (select fk1.frage as frage1, ak1.antwort as antwort1, fa1.id as fa1ID 
               from t_fragekatalog fk1 
                    join t_frage_antwort fa1 on (fa1.fragekatalog_id = fk1.id) 
                    join t_anwortkatalog ak1 on (ak1.id = fa1.antwort_id)) fr_teil1 on (fr_teil1.fa1ID = f.teil1) 
       join (select fk2.frage as frage2, ak2.antwort as antwort2, fa2.id as fa2ID 
               from t_fragekatalog fk2 
                    join t_frage_antwort fa2 on (fa2.fragekatalog_id = fk2.id) 
                    join t_anwortkatalog ak2 on (ak2.id = fa2.antwort_id)) fr_teil2 on (fr_teil2.fa1ID = f.teil2) 
       join (select fk3.frage as frage3, ak3.antwort as antwort3, fa3.id as fa3ID 
               from t_fragekatalog fk3 
                    join t_frage_antwort fa3 on (fa3.fragekatalog_id = fk3.id) 
                    join t_anwortkatalog ak3 on (ak3.id = fa3.antwort_id)) fr_teil3 on (fr_teil3.fa1ID = f.teil3) 
       join (select fk4.frage as frage4, ak4.antwort as antwort4, fa4.id as fa4ID 
               from t_fragekatalog fk4 
                    join t_frage_antwort fa4 on (fa4.fragekatalog_id = fk4.id) 
                    join t_anwortkatalog ak4 on (ak4.id = fa4.antwort_id)) fr_teil4 on (fr_teil4.fa1ID = f.teil4) 
       join (select fk5.frage as frage5, ak5.antwort as antwort5, fa5.id as fa5ID 
               from t_fragekatalog fk5 
                    join t_frage_antwort fa5 on (fa5.fragekatalog_id = fk5.id) 
                    join t_anwortkatalog ak5 on (ak5.id = fa5.antwort_id)) fr_teil5 on (fr_teil5.fa1ID = f.teil5) 
       join (select fk6.frage as frage6, ak6.antwort as antwort6, fa6.id as fa6ID 
               from t_fragekatalog fk6 
                    join t_frage_antwort fa6 on (fa6.fragekatalog_id = fk6.id) 
                    join t_anwortkatalog ak6 on (ak6.id = fa6.antwort_id)) fr_teil6 on (fr_teil6.fa1ID = f.teil6) 
       join (select fk7.frage as frage7, ak7.antwort as antwort7, fa7.id as fa7ID 
               from t_fragekatalog fk7 
                    join t_frage_antwort fa7 on (fa7.fragekatalog_id = fk7.id) 
                    join t_anwortkatalog ak7 on (ak7.id = fa7.antwort_id)) fr_teil7 on (fr_teil7.fa1ID = f.teil7) 
       join (select fk8.frage as frage8, ak8.antwort as antwort8, fa8.id as fa8ID 
               from t_fragekatalog fk8 
                    join t_frage_antwort fa8 on (fa8.fragekatalog_id = fk8.id) 
                    join t_anwortkatalog ak8 on (ak8.id = fa8.antwort_id)) fr_teil8 on (fr_teil8.fa1ID = f.teil8) 
 order by u.id, f.id;
greetz, pi314
Bitte warten ..
Mitglied: hakkbart
26.04.2012 um 17:43 Uhr
vielen dank ...das is ja mal der knaller ...

MFG
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Join über drei Tabellen
gelöst Frage von KimaroDatenbanken5 Kommentare

Hallo Admins, ich versuche gerade eine SQL Abfrage für meine Website zu basteln, aber irgendwie klappt das nicht so ...

Datenbanken
Inner join über 3 Tabellen
Frage von Fitzel69Datenbanken10 Kommentare

Hallo zusammen, ich habe folgendes Problem: Ich muß aus unserem ERP System mehrere Infos heraus ziehen. Hierfür benötige ich ...

Datenbanken

SQL - Mehrere Tabellen über JOINS verketten

Frage von GwahlersDatenbanken1 Kommentar

Aktuell habe ich das Problem dass die Ausgabe von meinen Erwartungen abweicht JOINS und Tabellen im Anhang Folgende Abfrage ...

Datenbanken

SQL ORDER BY und Join mit 2 Tabellen

gelöst Frage von DippsDatenbanken7 Kommentare

Hallo an alle, ich versuche gerade eine Join mit 2 Tabellen auf zubauen und mir den letzten Datensatz Anzeigen ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 3 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...