Toon posts:

[Mysql] Gegevens uit twee tabellen koppelen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heb twee tabellen. (Mysql) De onderstaande code laat een lijst zien van de top-10 repyers. Hartstikke mooi. Nu is elke 'user_id' een nummer met een bijbehorend persoon uit een andere tabel.

Hoe kan ik er nu voor zorgen dat ik in plaats van de user_id's de volledige namen in de tabel kan tonen? Die moet met een join ofzo?

Zie hier de code zoals het wel werkt, alleen maar met nummers.
code:
1
2
3
4
5
SELECT c.user_id
                ,count(c.user_id)
FROM lommers_nieuws_comments c
GROUP BY user_id
DESC LIMIT 0,10



Zie hier een probeersel van mij:
code:
1
2
3
4
5
6
7
8
SELECT c.user_id
, u.loginname
, count(c.user_id) AS aantal
FROM lommers_nieuws_comments c
,lommers_users u
WHERE c.user_id = u.id
GROUP BY user_id
ORDER BY aantal DESC LIMIT 0,10


Dit werkt niet. Er vercshijnt wel een lijst, alleen kloppen de gegevens niet :(

Verwijderd

Volgens mij is t zoiets :


SELECT *
FROM lommers_nieuws_comments c
WHERE c.user_id IN
(
SELECT c.user_id
FROM lommers_nieuws_comments c
GROUP BY user_id
DESC LIMIT 0,10
)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

mysql kan geen subquery's

Doet iets met Cloud (MS/IBM)


Verwijderd

code:
1
2
3
4
SELECT ...
FROM tabel1
INNER JOIN tabel2 ON tabel1.key=tabel2.key
WHERE ...

Zoiets :?

De oplossing van BooleanErik gaat waarschijnlijk niet werken, MySQL houdt niet zo van subqueries :)
edit:

D2k was me voor..., leyout iets veranderd

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Zet een MAX() om de loginname, dan gaat het werken. Niet dat je een max wilt hebben, maar iedere kolom die niet in de group by staat moet een aggregatie functie hebben. Je kan dus ook de loginname opnemen in de group by
Ipv count(c.user_id) kan je ook count(*) gebruiken

Verwijderd

Volgens mij moet je u.loginname ook in je group by functie plakken.

Goodielover: had je oplossing niet goed gelezen.. :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Verwijderd schreef op 06 november 2002 @ 11:27:
Volgens mij moet je u.loginname ook in je group by functie plakken.
Dat zei ik dus ook al mijn post. :z
Pagina: 1