Gebruik geen case voor de hele inner join, maar doe het alleen voor de 'on'-clausule in de join. Dit zou moeten werken (tenzij ik typefouten heb):
SELECT
conversation.c_id,
conversation.user_one,
conversation.user_two,
users.name,
users.lastName
FROM `conversation`
INNER JOIN `users`
on
users.id =
CASE
WHEN conversation.user_one = 1
THEN conversation.two
WHEN conversation.user_two = 1
THEN conversation.user_one
END
WHERE `user_one` = 1 OR `user_two` = 1
U kunt ook een soortgelijk effect bereiken door links bij elk van deze voorwaarden te blijven en vervolgens de case-instructie in uw select-instructie te gebruiken om te bepalen uit welke van de twee tabellen records moeten worden weergegeven.