Kombiniertes Select Statement mit HAVING oder JOIN
-
- Mitglied
- Beiträge: 44
- Registriert: 10.03.2004 19:21
Kombiniertes Select Statement mit HAVING oder JOIN
hallo,
habe eine Frage die zwar zu einem anderen Board gehoert aber dennoch hier bestimmt einer beantworten kann. Die Frage ist zu einem XForum das folgende Tabellen hat:
nuke_XForum_banned
nuke_XForum_forums
nuke_XForum_members
nuke_XForum_posts
nuke_XForum_ranks
nuke_XForum_smilies
nuke_XForum_themes
nuke_XForum_threads
nuke_XForum_whosonline
nuke_XForum_words
ich will hier ein paar Abfragen machen zu den Postings:
bei dem XForum können User anonymous und non anonymous posten.
Viele haben einen Thread Anon gepostet viele haben Anon darauf geantwortet.
nun will ich alle Users herausfinden, welche entweder einen Initial-Thread ein (Folge-) Posting mit einem Username (also registriert) gepostet haben.
Dafür will ich ein kombiniertes Select-statement anwenden, welches mir aus den beiden XForum-Tabellen folgendes herausgeben soll:
SELECT * FROM nuke_XForum_threads WHERE author <> 'Anonym'
Dieses Statement sollte kombiniert werden mit dem folgenden Statement
SELECT * FROM nuke_XForum_posts WHERE author <> 'Anonym'
Wie geht das? Kann ich das mit dem Join-Operator machen?
Geht das mit der HAVING-Klausel.
vielen Dank fuer die Tipps.
salsa
habe eine Frage die zwar zu einem anderen Board gehoert aber dennoch hier bestimmt einer beantworten kann. Die Frage ist zu einem XForum das folgende Tabellen hat:
nuke_XForum_banned
nuke_XForum_forums
nuke_XForum_members
nuke_XForum_posts
nuke_XForum_ranks
nuke_XForum_smilies
nuke_XForum_themes
nuke_XForum_threads
nuke_XForum_whosonline
nuke_XForum_words
ich will hier ein paar Abfragen machen zu den Postings:
bei dem XForum können User anonymous und non anonymous posten.
Viele haben einen Thread Anon gepostet viele haben Anon darauf geantwortet.
nun will ich alle Users herausfinden, welche entweder einen Initial-Thread ein (Folge-) Posting mit einem Username (also registriert) gepostet haben.
Dafür will ich ein kombiniertes Select-statement anwenden, welches mir aus den beiden XForum-Tabellen folgendes herausgeben soll:
SELECT * FROM nuke_XForum_threads WHERE author <> 'Anonym'
Dieses Statement sollte kombiniert werden mit dem folgenden Statement
SELECT * FROM nuke_XForum_posts WHERE author <> 'Anonym'
Wie geht das? Kann ich das mit dem Join-Operator machen?
Geht das mit der HAVING-Klausel.
vielen Dank fuer die Tipps.
salsa
Verschoben
Verschoben von Administration und Benutzung nach Coding & Technik
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
-
- Mitglied
- Beiträge: 44
- Registriert: 10.03.2004 19:21
hallo - vielen Dank fuer die Tipps.
das hoert sich sehr interessant an.
ich habe das mal versucht mit dem Ausdruck:
SELECT * FROM nuke_XForum_threads WHERE author <> 'Anonym'
UNION
SELECT * FROM nuke_XForum_posts WHERE author <> 'Anonym'
das wirft mir aber ein 1064 er Fehler aus. Irgendwas mache ich da noch falsch. WAS kann da noch falsch sein?
Bitte um Tipps und einen Ratschlag wie ich vorgehen soll.
salsa
das hoert sich sehr interessant an.
Blutgerinsel hat geschrieben:Die JOIN dienen dazu anhand mehrere Tabellen eine Relationelle DB zu ermöglichen, das setzt u.A. voraus das in den Tabellen mindestend ein Schlüssel einen Datensatz eindeutig indentifiziert und in der zu verknüpfenden natürlich auch....
Aber wie bereits gesagt UNION könnte dein Freund werden
ich habe das mal versucht mit dem Ausdruck:
SELECT * FROM nuke_XForum_threads WHERE author <> 'Anonym'
UNION
SELECT * FROM nuke_XForum_posts WHERE author <> 'Anonym'
das wirft mir aber ein 1064 er Fehler aus. Irgendwas mache ich da noch falsch. WAS kann da noch falsch sein?
Bitte um Tipps und einen Ratschlag wie ich vorgehen soll.
salsa
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
geht nicht
SELECT * FROM nuke_XForum_threads, nuke_XForum_posts WHERE nuke_XForum_threads.author <> 'Anonym' OR nuke_XForum_posts.author <> 'Anonym'
???
SELECT * FROM nuke_XForum_threads, nuke_XForum_posts WHERE nuke_XForum_threads.author <> 'Anonym' OR nuke_XForum_posts.author <> 'Anonym'
???
Das Tolle daran, die einzige zwischen richtig und falsch unterscheidende Art zu sein, ist, dass wir uns immer genau die Regeln ausdenken können, die uns gerade in den Kram passen.
Douglas Adams - Die letzten ihrer Art
Douglas Adams - Die letzten ihrer Art
-
- Mitglied
- Beiträge: 44
- Registriert: 10.03.2004 19:21
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
Genau auf das wollte ich raus.....larsneo hat geschrieben:UNION (und damit auch eine menge sql-injections) gibt es erst ab mysql4
Wenn du keine UNION Abfragen durchführen kannst bleiben dir nur noch als Alternative der Weg z.B. über eine temporäre Tabelle. Was an und für sich für Anfänger kein Pappenspiel ist.....
Lohnt sich der Aufwand wirklich?