Seite 2 von 2

Verfasst: 07.08.2004 16:06
von Pyramide
Was möchtest du denn für ein Ergebnis haben? Eine Liste der Usernamen? User-IDs? Topic/Post-IDs? Du hast ja bisher immer nur "SELECT *" angegeben (welche du übrigens auch unter MySQL 4 nicht mit UNION kombinieren kannst, da die Felder beider Anfragen gleich sein müssen). Und was ist in welchen Feldern gespeichert, wenn anonym oder nicht anonym gepostet wird - habe ich das richtig verstanden, daß dort auch registrierte Benutzer eine Checkbox "anonym posten" haben oder ist es genau wie beim phpBB, daß es einen Gast-Account gibt? Fragen über Fragen...

Im falle vom phpBB würde die Abfrage so aussehen:

Code: Alles auswählen

SELECT DISTINCT u.user_id, u.user_name FROM phpbb_users u, phpbb_posts p WHERE u.user_id = p.poster_id
oder mit JOIN + HAVING:

Code: Alles auswählen

SELECT u.user_id, u.user_name FROM phpbb_users u LEFT JOIN phpbb_posts p ON u.user_id = p.poster_id GROUP BY u.user_id HAVING count(p.post_id)>0
oder noch einfacher:

Code: Alles auswählen

SELECT user_id, user_name FROM phpbb_users WHERE user_posts>0

Verfasst: 07.08.2004 16:18
von Blutgerinsel
Pyramide hat geschrieben:......"SELECT *" angegeben (welche du übrigens auch unter MySQL 4 nicht mit UNION kombinieren kannst, da die Felder beider Anfragen gleich sein müssen)
Sagt wer?
soweit mir bekannt ist nein....
Es trifft zwar zu das ein Select von Table A die Zeilen von Table B in die gleichen Felder von Table A schreibt bzw. anzeigt.
Aber dennoch kann ich sehr wohl mehrere Table in mit Union kombinieren.

Verfasst: 07.08.2004 16:53
von Pyramide
Blutgerinsel hat geschrieben:Sagt wer?
MySQL...
ERROR 1222: The used SELECT statements have a different number of columns
Kann natürlich sein, daß die beiden Tabellen zufällig die gleiche anzahl Spalten haben, allerdings hat man dann vielleicht ein Datumsfeld der einen und ein Varcharfeld der anderen Tabelle in einer Spalte, was wohl nicht erwünscht ist. :roll:

Verfasst: 07.08.2004 18:33
von Blutgerinsel
Also bei 2 Tabellen mit 2 Felder z.B. gibt es keine Probleme.

Deine Fehlermeldung ist eindeutig.....
Bei der Auswahl 2er Spalten aus Table A und B sollte es denke ich gehen....