[mysql] heel veel joins en nog 1 bijvoegen.

Pagina: 1
Acties:

  • Speedener
  • Registratie: September 2000
  • Laatst online: 23-08 17:27
Ik heb een vrij grote Query, nu wil ik er nog iets aan bijvoegen mar het lukt niet echt.

de huidige quuery is dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT 
topic.topic,
topic.icon, 
topic.title, 
last, 
start, 
topic.reply, 
view, sticky, 
topic.hide, 
announce, 
closed, 
user.name, 
topic.user, 
forum.name AS forum, 
forum.forum AS forumid, 
forum.read_access, 
forum.post_access, 
forum.reply_access
FROM 
topic 
LEFT JOIN forum USING (forum) LEFT JOIN user ON user.user=topic.user 
WHERE
topic.forum='17'


Nu wil ik nog iets selecteren uit de tabel user, veld heet name en de id van die user haald hij uit tabel topic, veld lastuser.

nu heb ik dit gebprobeerd maar dat werkt niet helemaal correct, want hij geeft dan alle gebruikers weer, en dus ipv 1 topic zoveel topics als users erzijn

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SELECT 
topic.topic,
topic.icon, 
topic.title, 
last, 
start, 
topic.reply, 
view, sticky, 
topic.hide, 
announce, 
closed, 
user.name, 
topic.user, 
forum.name AS forum, 
forum.forum AS forumid, 
forum.read_access, 
forum.post_access, 
forum.reply_access,
last.name as lastuser
FROM 
topic 
LEFT JOIN forum USING (forum) LEFT JOIN user ON user.user=topic.user 
LEFT OUTER JOIN user as last ON user.user = topic.lastuser 
WHERE
topic.forum='17'


zou iemand me even kunnen uitleggen wat ik verkeerd doe.

edit: ik heb wel wat weggelaten uit de querys maar dat is niet van belang.
edit 2: het is dus een 1 op veel query maar ik krijg ze dus ook gewoon allemaal :?

[ Voor 11% gewijzigd door Speedener op 31-12-2002 13:47 ]


Verwijderd

De laatste join die je doet, doe je op de andere user tabel, en die moet je dus veranderen naar last.user = topic.lastuser (uitgaande dat het veld user de ID bevat, maar daar lijkt het wel op). Tevens denk ik niet dat het outer deel overbodig is.
(Disclaimer: ik kan het mis hebben ;))

  • Speedener
  • Registratie: September 2000
  • Laatst online: 23-08 17:27
Mr X, je bent een engel :*

was weer eens een domme fout van me, maargoed van fouten leer je *D