Beste devs
Ik wil graag berichten selecteren en de (meerdere) bijhorende ontvangers selecteren. Dit probeer ik via de onderstaande (versimpelde) query;
Ik selecteer eerst een aantal bericht via een subquery omdat dit sneller is, dan alles te selecteren (incl de `users` tabel) en dan er 10 uit te pakken.
Via de query krijg ik het volgende:
Terwijl dit moet zijn;
Iemand enig idee hoe ik dit op kan lossen?
De functie IN() lijkt mijn idee niet te ondersteunen en na uren zoeken en proberen is mijn frustratie wat groot.
Alvast Bedankt,
Nicholai
Edit1; foutje in query
Ik wil graag berichten selecteren en de (meerdere) bijhorende ontvangers selecteren. Dit probeer ik via de onderstaande (versimpelde) query;
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT m.id, m.message, GROUP_CONCAT(u.username SEPARATOR ', ') AS user FROM ( SELECT m.id, m.message, GROUP_CONCAT(r.rid SEPARATOR ',') AS ids FROM jos_jam AS m JOIN jos_jam_receivers AS r ON r.mid = m.id WHERE (r.rid = 62 AND r.inbox = 2) OR (m.sid = 62 AND m.outbox = 2) GROUP BY m.id LIMIT 10 ) AS m LEFT JOIN jos_users AS u ON u.id IN (m.ids) GROUP BY m.id |
Ik selecteer eerst een aantal bericht via een subquery omdat dit sneller is, dan alles te selecteren (incl de `users` tabel) en dan er 10 uit te pakken.
Via de query krijg ik het volgende:
| ID | MESSAGE | USER |
|---|---|---|
| 1 | Bla Bla | gebruiker1 |
| 2 | gfh fgh | gebruiker2 |
Terwijl dit moet zijn;
| ID | MESSAGE | USER |
|---|---|---|
| 1 | Bla Bla | gebruiker1 |
| 2 | gfh fgh | gebruiker2, gebruiker3, etc |
Iemand enig idee hoe ik dit op kan lossen?
De functie IN() lijkt mijn idee niet te ondersteunen en na uren zoeken en proberen is mijn frustratie wat groot.
Alvast Bedankt,
Nicholai
Edit1; foutje in query