WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   SQL-Frage (http://www.wcm.at/forum/showthread.php?t=92179)

Gonte 25.03.2003 08:46

SQL-Frage
 
huhu!

ich stehe vor folgendem problem. ich code gerade ein kleines board bzw. knowledgebase für mich (php, mysql), in das/die user posts machen können. andere user können dieses posts verändern und auf den neuesten informationsstand bringen.
in der table, in der ich die einzelnen posts speichere, sind zwei felder, die auf eine user-table verweisen. das eine feld beinhaltet die id desjenigen, der den post angelegt hat; das andere feld die id desjenigen, der den post zuletzt verändert hat.

beim auslesen der posts mache ich einen join auf die user-table und hole mir den namen des posts-starters aus der user-table.

ich will aber gleichzeitig auch den namen desjenigen ermitteln, der den post zuletzt verändert hat. also zwei namen aus der user-table mit nur einem query holen.

ist das irgendwie möglich? irgendwie komme ich da nicht weiter und meine google-such-versuche erwischen anscheinend immer die falschen suchbegriffe. ich wäre für hilfe dazu sehr dankbar.

Tarjan 25.03.2003 09:54

So könnte es gehen:

select * from postingtable p, usertable u where (hauptargument um posting zu selektieren) and (p.threadersteller = u.user or p.postigeditierer = u.user)

Du musst die beiden Felder mit oder Verknüpfen, dann kommen mit einer SQL Abfrage 2 Datensätze. Die eine mit dem Threadersteller, die andere mit dem Postingveränderer.

NorwegianBlue 25.03.2003 10:01

hallo!

man kann natürlich auch eine Tabelle (users) zweimal in einem select verwenden, z.B. so:

select posts.text, u1.name, u2.name from posts, users u1, users u2 where posts.creator_id = u1.id and posts.modifier_id = u2.id

man muss nur die Tabellen, die man öfter verwendet mit einem alias versehen (hier u1 und u2)
wenns (noch) keinen modifier des posts gibt, musst ev. einen outer join machen (geht das in mysql überhaupt?)

hope that helps

Gonte 25.03.2003 13:30

vielen dank! genau das habe ich gesucht!

wieder was dazu gelernt! ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag