Hoi mensen,

Ik heb twee tabellen die ik will koppelen en dat lukt me maar niet.
Vandaar de vraag voor hulp.

Ik heb twee Mysql tabellen:

note
------------------------------------
| id | user_id | type | note |
------------------------------------

relation
----------------------------------
| id | user_id | following |
----------------------------------

Nu wil ik alle notes van een gebruiker ophalen, zeg user_id = 5
Maar ik wil ook alle notes ophalen van de mensen waar ik een relatie mee heb. dus waar following = 5 (of wellicht beter following = user_id)

Nu heb ik de volgende query gemaakt.

SELECT n.id, n.user_id, n.type, n.note
FROM note AS n
LEFT JOIN relation AS r ON n.user_id = r.user_id
WHERE n.user_id = 5
OR n.user_id = r.following
GROUP BY n.id


Dit werk niet, ik krijg alleen mijn eigen notes te zien dus de notes met user_id = 5

Kan iemand me vertellen hoe de join er uit zou moeten zien?

thanks!

Ok, voor de liefhebbers. Ik heb de volgende oplossing gevonden.
Wellicht interesant...

SELECT n.id, n.user_id, n.type, n.note
FROM note AS n
LEFT JOIN relation AS r ON n.user_id = r.user_id
WHERE n.user_id = 5
OR n.user_id IN (SELECT r.following FROM relation r WHERE r.following = n.user_id)
ORDER BY n.created_at DESC

Mochten er op of aanmerkingen zijn hoor ik ze natuurlijk graag
probeer eens de OR tussen haakjes
(n.user_id = 5 OR n.user_id = r.following)

zou moeten werken
@daan
Volgens mij als je die manier van jou gebruikt gaat het ook niet goed. Zoeken naar r.following = n.user_id kan wel, maar Je moet iedereen hebben waarbij de r.following ook 5 is.
Volgens mij moet dat op zo'n manier kunnen als hieronder.

<?php
$sql = '
SELECT n.id, n.user_id, n.type, n.note
FROM note AS n
LEFT JOIN relation AS r ON n.user_id = r.user_id OR n.user_id = r.following
WHERE n.user_id = 5
GROUP BY n.id
ORDER BY
n.created_at DESC';
?>
sorry dat ik niet duidelijk genoeg ben.
Mijn tweede post is de query die wel werkt.
Ik wilde hem alleen even delen en laten weten dat ik een oplosisng had.

@robbert, Ik heb jou oplossing ook nog geprobeerd maar die werkt niet.

Sorry nogmaals voor de onduidelijkheid. Mijn code werkt dus.
ik hoor echter natuuurlijk graag op of aanmerkingen. ;-)

Reageren