php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-02-2010, 14:00
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard MySQL Abfrage über mehrere Tabellen

Hallo,

wahrscheinlich eine leichte Frage für die Wissenden unter euch:

Hintergrund:
Im Rahmen einer Veranstaltungsevaluation sollen alle Teilnehmer befragt werden.
Beim Aufruf des Fragebogens möchte ich einem Teilnehmer nun alle Veranstaltungen zur Auswahl geben, die er noch beurteilen kann - also zu denen er noch keinen Fragebogen ausgefüllt hat.

Tabellenstruktur:
Veranstaltungen (VID, ...)
Studierende_Veranstaltungen ( SID, VID, teilgenommen [0,1])
Studierende (SID, ...)
Fragebogen (FID, SID, VID, ...)

Mir will gerade die SQL Abfrage nicht einfallen, um all die Veranstaltungen zu ermitteln, die ein Studierender (Beispiel: SID 113) noch beurteilen kann.


Vielen Dank für eure Hilfe!
Mit Zitat antworten
  #2 (permalink)  
Alt 08-02-2010, 14:17
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Abgesehen davon, dass dein Post keine Frage zum beantworten enthält: Mit genau dem Topic findest du, wenn du suchst, genau das was du willst. Also: Suchfunktion bemühen!
Mit Zitat antworten
  #3 (permalink)  
Alt 08-02-2010, 14:25
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Besten Dank für deine Antwort.

Meine Frage lautet wie formuliere ich die entsprechende SQL Abfrage.


Dein Hinweis führt mich selbstverständlich zum Thema Joints und ggf. verschachtelte Abfragen, aber ich komme gerade leider zu keiner Lösung.
Mit Zitat antworten
  #4 (permalink)  
Alt 08-02-2010, 14:46
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

wie sieht denn deine Abfrage bisher aus und was funktioniert daran nicht so wie es soll?

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 08-02-2010, 15:25
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bisher sah mein Lösungsansatz so aus, dass ich nach die Studierenden_Veranstaltung Tabelle durchsucht habe und eine Lösung in PHP implementiert habe.
Auf dem halben Weg habe ich mich dann daran erinnert, dass die Lösung wahrscheinlich auch mit einer verbesserten Datenbankabfrage funktionieren müsste.

Bisher ist da aber noch nicht viel bei rausgekommen:

SELECT *
FROM Veranstaltungen, Studierende_Veranstaltungen
WHERE SID = 113 AND NOT IN (...)

Tja und beim zweiten Teil habe ich gerade ein Brett vor dem Kopf.
Mit Zitat antworten
  #6 (permalink)  
Alt 08-02-2010, 15:36
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Da fehlen trotzdem immer noch Infos.

Ich stelle es mir so vor wie nachfolgend beschrieben, obwohl es eigentlich deine Aufgabe ist, das Problem detailliert darzulegen:
Es sollen also alle Datensätze aus Veranstaltungen ermittelt werden, an denen ein Student auch teilgenommen hat, für die es aber noch keinen Datensatz in Fragebogen gibt.

Trifft das soweit zu?

Was ich auch nicht verstehe: Was ist das Feld teilgenommen? Wenn ein Student an einer Veranstaltung nicht teilgenommen hat, sollte es doch für diese Kombination einfach keinen Datensatz in Studierende_Veranstaltungen geben, oder stellt das Feld irgend etwas anderes dar (erfolgreiche Teilnahme, bestandene Prüfung, ausreichende Anwesenheit)?

Das alles klärst du jetzt bitte lückenlos in deiner nächsten Antwort auf.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 08-02-2010, 15:50
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich versuche nochmal das Problem zu beschreiben:

Ein Studierende wird zur Bewertung seiner Veranstaltungen eingeladen. Kommt dann durch einen Link zum Fragebogen. Auf dieser Seite sollen in einem Auswahlfeld alle Veranstaltungen erscheinen, die der Studierende noch nicht beurteilt hat (also noch keine Fragebögen existieren).

Also ich möchte all die Veranstaltungsinformationen auslesen, an denen ein Studierende teilgenommen hat. Der Wert "teilgenommen" ist in der Tat nicht von Nöten. Dies leistet ein einfacher Verbund der beiden Tabellen Veranstaltungen und Studierende_Veranstaltung über die anfragende SID des Evaluationslinks.

Welche Information mir nun noch fehlt, ist ob davon bereits Veranstaltungen beurteilt worden sind.



Ich hoffe, dass das Problem nun deutlicher geworden ist. Vielen Dank für die Hilfe!
Mit Zitat antworten
  #8 (permalink)  
Alt 08-02-2010, 15:56
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Code:
select *
from `Studierende_Veranstaltungen` as s2v
join `Veranstaltungen` as v on v.`VID` = s2v.`VID`
left join `Fragebogen` as f on f.`SID` = s2v.`SID` and f.`VID` = v.`VID`
where f.`FID` is null
    and s2v.`SID` = <StudentId>
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (08-02-2010 um 16:00 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 10-02-2010, 12:08
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe dies mal in die phpMyAdmin Oberfläche eingegeben und bekam einen Fehler 1146

Code:
select *
from `Studierende_Veranstaltungen` as s2v
join `Veranstaltungen` as v on v.`Veranstaltung_ID` = s2v.`Veranstaltung_ID`
left join `Fragebogen` as f on f.`Studierende_ID` = s2v.`Studierende_ID` 
and f.`Veranstaltung_ID` = v.`Veranstaltung_ID`
where f.`Veranstaltung_ID` is null
    and s2v.`Studierende_ID` = 2
Die Bezeichner sind hier etwas anders und eine Fragebogen ID habe ich nicht mehr, da ein einzelner Fragebogen ja eindeutig durch SID und VID bestimmt ist, da ein Studierende nur einmal zu einer Veranstaltung einen Fragebogen ausfüllen darf.

Geändert von elf7013 (10-02-2010 um 12:37 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 10-02-2010, 12:11
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Der Fehler besagt, dass irgendetwas nicht existiert. Überprüfe die Namen der Tabellen und Spalten und poste bitte immer die vollständige Fehlermeldung, weil man sonst nicht viel dazu sagen kann.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #11 (permalink)  
Alt 10-02-2010, 12:38
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die komplette Fehlermeldung aus phpMyAdmin liest sich leider nicht viel besser:

"#1146 - "

Das ist alles. Da steht lediglich noch ein gelbes Warn-i vor.



Edit:
Aber besten Dank! Dein Hinweis hat geholfen den Fehler zu finden. Ich hatte tatsächlich eine Tabelle falsch angegeben.
Mit Zitat antworten
  #12 (permalink)  
Alt 10-02-2010, 12:41
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Dann setz das Statement auf der Kommandozeile oder per PHP ab. PHPMyAdmin ist bei dir entweder kaputt oder du hast eine alte Version, denn eigentlich zeigt es die Fehlermeldungen immer an.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #13 (permalink)  
Alt 10-02-2010, 12:51
elf7013
 Registrierter Benutzer
Links : Onlinestatus : elf7013 ist offline
Registriert seit: Nov 2005
Beiträge: 104
elf7013 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Dann setz das Statement auf der Kommandozeile oder per PHP ab. PHPMyAdmin ist bei dir entweder kaputt oder du hast eine alte Version, denn eigentlich zeigt es die Fehlermeldungen immer an.
Danke für den Hinweis! Werde mich mal an unseren Server Admin wenden
Abfrage läuft auf jeden Fall rund

Vielen Dank für deine Hilfe und deine Geduld mit mir.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
while abfrage über mehrere tabellen nixahnung SQL / Datenbanken 2 21-10-2007 12:34
Abfrage über mehrere Tabellen beowulf1980 SQL / Datenbanken 3 05-04-2006 13:23
[MySQL 3.23.X] Abfrage über mehrere Tabellen Nocturn SQL / Datenbanken 14 06-09-2003 10:50
[MySQL 4.1] Abfrage über mehrere Tabellen in mehreren Datenbanken betatester_iq SQL / Datenbanken 7 28-07-2003 09:16
Abfrage über mehrere Tabellen Medialution SQL / Datenbanken 10 28-05-2003 16:53

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:21 Uhr.