Não tenho certeza se entendi exatamente a pergunta, mas algo assim não funcionaria?
SELECT s1.wordid, s1.synsetid, s1.sensekey, synsets.definition
, s2.wordid AS matchedWordID, w.* -- Additional info not from question's query
FROM senses AS s1
LEFT JOIN synsets ON s1.synsetid = synsets.synsetid
LEFT JOIN senses AS s2 ON s1.synsetid = s2.synsetid AND s1.wordid <> s2.wordid
LEFT JOIN words AS w ON s2.wordid = w.wordid
WHERE s1.wordid = 79459
;
Observação:
...
é apenas uma abreviação para a lista de campos que você realmente deseja. Nota 2:É claro que você pode JOIN para amostras usando os
synsets
referência, mas lembre-se de que os resultados seriam repetidos para cada par de palavras e amostra; e é possível que alguns pares de palavras sejam repetidos se forem sinônimos em múltiplos significados.