Aiuto a modificare una query per restituire nomi utente invece di ID utente

Ciao! Sto cercando un po’ di aiuto per modificare una query in modo che restituisca gli username invece degli ID numerici degli utenti.

Fino ad ora ho utilizzato questa (modificata dal eccellente thread di @DavidGNavas Grafico di rete)

WITH pairs AS (
    SELECT p.user_id liked, pa.user_id liker
    FROM post_actions pa
    LEFT JOIN posts p ON p.id = pa.post_id
    LEFT JOIN topics t ON t.id = p.topic_id
    LEFT JOIN categories c ON c.id = t.category_id
    WHERE post_action_type_id = 2
    AND c.id = 47
)
SELECT liker liker_user_id, liked liked_user_id, count(*)
FROM pairs
GROUP BY liked, liker
ORDER BY count DESC

Poi ho utilizzato una ricerca VLOOKUP piuttosto macchinosa per abbinare i nomi utente agli ID…

Una volta ottenuta una lista di coppie (chi ha messo “mi piace” e chi è stato “messo in like”) espressa tramite username, posso seguire il metodo usato nel thread del Grafico di rete per generare questo tipo di grafici, mostrando l’attività all’interno di categorie specifiche, dato che abbiamo comunità molto distinte in diverse parti dei nostri forum:

I grafici in tempo reale sono un modo prezioso per esplorare le nostre diverse sottocomunità, identificando rapidamente membri influenti e gruppi di persone.

Ad esempio, confronta la nostra comunità di musicisti con quella dei grafici: c’è una grande differenza tra le due :slight_smile:

Ecco una versione modificata che fa proprio questo:

WITH pairs AS (
    SELECT p.user_id liked_id, pa.user_id liker_id
    FROM post_actions pa
    LEFT JOIN posts p ON p.id = pa.post_id
    LEFT JOIN topics t ON t.id = p.topic_id
    LEFT JOIN categories c ON c.id = t.category_id
    WHERE post_action_type_id = 2
    AND c.id = 1
)
SELECT 
  liker.username as liker,
  liked.username as liked,
  count(*)
FROM pairs
LEFT JOIN users liker
ON liker_id = liker.id
LEFT JOIN users liked
ON liked_id = liked.id
GROUP BY liked, liker
ORDER BY count DESC

Grazie @mcwumbly - è perfetto :slight_smile:

Inizierò a preparare i diagrammi di rete per tutte le altre sezioni dei nostri forum, ora che il processo non richiede più una soluzione alternativa per ottenere gli username.