Nie rób wielkości liter dla całego sprzężenia wewnętrznego, tylko dla klauzuli „on” w łączeniu. To powinno działać (chyba że mam literówki):
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
Możesz również osiągnąć podobny efekt, łącząc w lewo każdy z tych warunków, a następnie używając instrukcji case w instrukcji select, aby określić, z której z dwóch tabel mają być wyświetlane rekordy.