CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
23.12.2009, 13:59:33
|
Anfänger
|
|
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
|
|
Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschließen
Hallo SELFPHP-Gemeinde!
Ich habe mir selbst eine Aufgabenstellung auferlegt, die ich alleine nicht lösen kann und hoffe ihr könnt mir helfen.
Ich habe eine Art Quiz erstellt - Die Fragen befinden sich in einer Tabelle.
Nun möchte ich aber, dass ein Benutzer nicht die selbe Frage zwei mal bekommt.
Daher habe ich mir eine zweite Tabelle angelegt, in der der aktuelle Benutzername eingetragen wird und die Frage-ID von der Frage, die er gerade beantwortet hat.
sieht in etwa so aus
Tabelle1
-----------
frageid
frage
antwort1
antwort2
Tabelle2
-----------
benutzername
frageid
Nun scheitere ich aber kläglich an der select-Abfrage, wie der aktuelle Benutzer "Horst" alle Fragen aufgelistet bekommt, ausser die, die in Tabelle2 schon mit frageid und seinem Benutzer auftauchen.
Ist so etwas zu realisieren?
Für einen Stupps in die richtige Richtung danke ich euch schon jetzt!
Olli
|
23.12.2009, 15:23:37
|
|
Senior Member
|
|
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
Hi,
ja kannste realisieren.
Kleiner Tipp "WHERE NOT HAVING (SELECT * FROM tabelle2) ....."
so in etwa sollte das klappen... musste bissle Doku lesen und bissle rumprobieren, habs au net im Kopf gerade.
Domi
__________________
the best way to be ready for the future is to invent it
|
23.12.2009, 15:27:04
|
Anfänger
|
|
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
Dankeschön Domi, ich versuch´s!
|
23.12.2009, 15:30:02
|
|
Senior Member
|
|
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
Musst halt bei dem 2. Select die mit WHERE deine Bedingungen richtig angeben, aber das schaffst du schon!
Freu mich deine Lösung hier lesen zu dürfen....
Domi
__________________
the best way to be ready for the future is to invent it
|
23.12.2009, 17:04:38
|
Anfänger
|
|
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
Domi, ich glaub ich hab´s.
Ich bin mit dem NOT HAVING auf keinen grünen Zweig gekommen, da mir MySQL sagte, dass das Subquery mehr als ein Ergebnis liefert (Ist auch der Fall, wenn eine Person schon mehrere Fragen beantwortet hat)
Obwohl ich schon das eine oder andere Mal gelesen hab, das in einem Query noch mal ein Query vorkommen kann, benutze ich das heut zum ersten mal.
Mein Lösungsansatz, der bisher zu funktionieren scheint:
SELECT *
FROM tabelle1
WHERE id NOT
IN (
SELECT frage
FROM tabelle2
WHERE user = 'olli'
)
ORDER BY RAND( )
LIMIT 5
|
26.12.2009, 21:20:18
|
|
Senior Member
|
|
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
ei ei, sollte nicht all zu sehr in Eile schreiben .. natürlich meine ich "NOT IN", da hast du vollkommen Recht! Wenn man aber auch immer 5 Sachen gleichzeitig machen muss *grrr*
.. freut mich aber, dass ne Lösung hast!!
Domi
__________________
the best way to be ready for the future is to invent it
|
29.12.2009, 07:43:35
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli
Hi
mach mal ein explain vor deinem select in phpmyadmin das zeigt dir vielleicht
weitere nützliche Ergebnisse.
Denke du wirst wenn mehr als 100 Leute mit mehr als 100 Fragen in der DB sind
abfragezeiten haben die etwas höher sind. Aber das solltest du mit Testeinträgen
und explain eingrenzen.
Versuch doch das ganze mit einem join zu lösen.
z.B.
Code:
select a.* from fragen as a left join userfragen as b on a.fragenid=b.fragenid
where b.fragenid is null and b.userid=X
MfG
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:06:09 Uhr.
|