|
Ich bräuchte jemanden der mir zwei SQL Abfragen formuliert weil ich selber dazu nicht im Stande bin - zumindest liefert mir meine eigene Abfrage nicht das Ergebnis das ich haben möchte... wahrscheinlich weil ich meine JOINS falsch bastel und/oder die WHERE bedingungen falsch sind.
SQL Abfrage No.1:
Ich brauche:
"bb1_userfields" -> "userid (für den JOIN)", "field4", "field5", "field6", "field7", "field8".
"bb1_users" -> "userid (für den JOIN)", "username"
und ich brauch noch eine Liste der Gruppen in der der User steckt. Ich weis das die Infos in "bb1_groupcombinations" und in "bb1users.groupcombinationid" steckt, nur weis ich nicht wie ich das alles zusammenverbinde das ich am Ende die "groupid" des jeweiligen Users verwenden kann - nicht die groupcombinationid.
Das Ergebnis sollte also so aussehen das ich für mein PHP Script die Felder: "username", "field4 bis 8", und "groupid" verwenden kann.
Mein bisheriges Ergebnis:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
SELECT
bb1_userfields.userid,
bb1_users.userid,
username,
field4,
field5,
field6,
field7,
field8
FROM
bb1_userfields
NATURAL JOIN
bb1_users
WHERE
bb1_userfields.userid = bb1_users.userid
ORDER BY
username DESC
|
|
Problem: Die dringend notwendige GroupID ist noch nicht enthalten
SQL Abfrage No. 2:
Die brauche ich für mein Newsscript:
kurz beschrieben, ich brauch eine SQL Abfrage die mir von einer bestimmten Area (z.b.: 2, 10 und 27) jeweils den Inhalt des Starterthreads anzeigt und das von den 15 ältesten.
Dazu brauch ich:
"bb1_posts" -> boardid, username, posttopic, posttime, bb1_posts.threadid(Für den JOIN), message
"bb1_threads" -> thread.id(Für den JOIN), replycount
Mein bisheriges Ergebnis:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
SELECT
boardid,
username,
posttopic,
posttime,
bb1_posts.threadid,
bb1_threads.replycount,
message
FROM
bb1_posts
NATURAL JOIN
bb1_threads
WHERE
starterid = userid AND posttopic != '' AND
(boardid = '2' OR boardid = '10' OR boardid = '23')
ORDER BY
posttime DESC LIMIT 0, 6 |
|
Problem: Irgendwie werden nicht alle Starterthreads angezeigt ... und sobald einer in einer Antwort einen Titel eingibt liefert mir die Abfrage die Antwort auch als eigenen Starterthread zurück.
NACHTRAG:
Okay die SQL Abfrage No.2 hab ich selbst mehr oder weniger hinbekommen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
SELECT
boardid,
username,
posttopic,
posttime,
bb1_threads.starttime,
bb1_posts.threadid,
bb1_threads.replycount,
message
FROM
bb1_posts
NATURAL JOIN
bb1_threads
WHERE
starterid = userid AND
bb1_threads.starttime = posttime AND
(boardid = '2' OR boardid = '10' OR boardid = '23'
ORDER BY
starttime DESC LIMIT 0, 6 |
|
Das ganze funktioniert NUR wenn der Newsthread nicht verschoben oder mit einem anderen zusammengefügt wurde, ansonsten stimmt die Starttime vom Thread und Posttime vom Threadstarter nicht überein.Jetzt wäre es natürlich noch toll wenn mir jemand die SQL Abfrage no. 1 vervollständigen könnte
Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von The_Holy_One: 11.01.07 15:53.
|
|