Просто измените ваши WHERE
с и ON
с. Заметьте, что парантезы вокруг AND
ed сравнений не нужны; Я сделал это только для того, чтобы уточнить, что происходит.
SELECT DISTINCT exchange.id userid, exchange.name username,
exchange.lastactivity lastactivity, exchange.id avatar,
exchange.id link, cometchat_status.message,
cometchat_status.status
FROM buddy
JOIN exchange ON (buddy.penpalA = exchange.id AND buddy.penpalA = 887)
OR (buddy.penpalB = exchange.id AND buddy.penpalA <> 887 AND buddy.penpalB = 887)
LEFT JOIN cometchat_status ON exchange.id = cometchat_status.userid
WHERE buddy.penpalA = 887 OR buddy.penpalB = 887
ORDER BY username ASC
UPDATE:
Я изменил код выше, чтобы присоединиться, когда penpalB
равен 887, насколько я понимаю, ваш комментарий.