Kombiniertes Select Statement mit HAVING oder JOIN

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
salsa_nacht
Mitglied
Beiträge: 44
Registriert: 10.03.2004 19:21

Kombiniertes Select Statement mit HAVING oder JOIN

Beitrag von salsa_nacht »

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
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Verschoben

Beitrag von PhilippK »

Verschoben von Administration und Benutzung nach Coding & Technik
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Versuch's mal mit UNION: http://dev.mysql.com/doc/mysql/en/UNION.html#IDX1587

Gruß, Philipp
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
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

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 :wink:
salsa_nacht
Mitglied
Beiträge: 44
Registriert: 10.03.2004 19:21

Beitrag von salsa_nacht »

hallo - vielen Dank fuer die Tipps.

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 :wink:

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
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Welche MySQL Version hast du?
Benutzeravatar
Amlor
Mitglied
Beiträge: 527
Registriert: 28.01.2003 12:51
Wohnort: gelsenkirchen
Kontaktdaten:

Beitrag von Amlor »

geht nicht

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
salsa_nacht
Mitglied
Beiträge: 44
Registriert: 10.03.2004 19:21

Beitrag von salsa_nacht »

hallo Blutgerinsel,
Blutgerinsel hat geschrieben:Welche MySQL Version hast du?


MySQL 3.23.58

freu mich auf tipps.

salsa
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

UNION (und damit auch eine menge sql-injections) gibt es erst ab mysql4
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

larsneo hat geschrieben:UNION (und damit auch eine menge sql-injections) gibt es erst ab mysql4
Genau auf das wollte ich raus.....

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?
Antworten

Zurück zu „Coding & Technik“