스크립트를 만들었는데 오류 메시지가 나옵니다. 피드백이나 조언을 구합니다

이건 스레드에 댓글로 달아야 할 것 같은데, 적절한 스레드를 찾지 못했어요. ‘Cool Scripts’ 스레드는 이제 잠겨 있는 것 같습니다.

이 스크립트는 user_id, username, name, email, custom_field1, custom_field2, trust_level, visits 및 기타 몇 가지 통계를 가져오도록 설계되었습니다.

아래는 코드입니다.

SELECT
    pr.user_id,
    username,
    name,
    email,
    uf.custom_field1,
    uf.custom_field2,
    tl.trust_level,
    visits,
    COALESCE(topics_viewed, 0) AS topics_viewed,
    COALESCE(posts_read, 0) AS posts_read,
    COALESCE(posts_created, 0) AS posts_created,
    COALESCE(topics_created, 0) AS topics_created,
    COALESCE(topics_with_replies, 0) AS topics_with_replies,
    COALESCE(likes_given, 0) AS likes_given,
    COALESCE(likes_received, 0) AS likes_received
FROM pr
LEFT JOIN tv USING (user_id)
LEFT JOIN pc USING (user_id)
LEFT JOIN tc USING (user_id)
LEFT JOIN twr USING (user_id)
LEFT JOIN lg USING (user_id)
LEFT JOIN e USING (user_id)
LEFT JOIN uf USING (user_id)
LEFT JOIN tl USING (user_id)

그리고 제가 받는 에러 메시지는 다음과 같습니다:

PG::UndefinedTable: ERROR:  relation "pr" does not exist
LINE 23: FROM pr
              ^

제가 놓친 부분이 있는지 확인해 주실 수 있을까요? 아무리 찾아도 모르겠어요. SQL에 익숙하지 않아서 여기까지 오는 데 꽤 애를 먹었습니다.

부탁드립니다. 감사합니다.

문제는 해당 테이블이 하나도 존재하지 않는다는 것입니다. FROM pr는 pr 테이블에서 행을 선택하라는 뜻이지만, Discourse에는 pr이라는 테이블이 없습니다.

아마도 posts나 topics를 의미하신 것일까요? 다른 모든 조인(join)도 마찬가지입니다. 해당 테이블들은 모두 존재하지 않습니다.

이 게시글에서 가져온 것 같습니다:

하지만 @Drew-ART님, 일부만 골라 쓰는 것이 아니라 누락된 부분을 보완하도록 수정한 전체 쿼리를 사용해야 합니다.

@Falco와 @JammyDodger 감사합니다. 이 부분을 많이 놓쳤네요. 다시 한번 시도해 보겠습니다 :slight_smile: