[GolosSQL] Как узнать, кто ставит тебе флаги? Нужна помощь при составлении запроса к базе

Сегодня в комментариях к отчету флагов за неделю пользователь @anela задала интересную задачку:

составить отчет по флагам таким образом, чтобы было понятно кто и за что ставит флаги.

На данный момент у меня есть первичное решение это задачи, но у меня возникли некоторые трудности с составлением запроса.

Итак, по порядку. Для анализа я выбрал 3 таблицы:

  • TxVotes - хранит данные обо всех голосах (аввоуты и флаги). Буду использовать в запросе поля: tx_id - уникальный код транзакции, txvoter - кто отдал голос, author - кому был отдан голос
  • TxComments - хранит данные о постах и комментариях. Буду использовать в запросе поля permlink - ссылка на пост, title - заголовок поста, body - содержание поста или комментария
  •  Transactions - хранит данные обо всех транзакциях. Буду использовать поля tx_id - код транзакции и expiration - время транзакции в сети

Вот сам запрос. 

SELECT TOP 30 txvotes.tx_id, txvotes.voter, txvotes.author, txcomments.permlink, txcomments.title, txcomments.body, transactions.expiration
FROM Transactions 
INNER JOIN TxVotes on txvotes.tx_id=transactions.tx_id
INNER JOIN TxComments on txvotes.permlink=txcomments.permlink
WHERE TxVotes.weight < 0 AND TxVotes.author='naminutku'
ORDER BY txvotes.tx_id DESC


В результате получается то, что надо, но не совсем. Например, я получил флаг от пользователя @econmag за комментарий tx_id=1437054, но он почему-то отображается 2 раза. Я помню, что я его 2 раза редактировал и видимо этот факт и отображен в таблице. Но почему тогда 1 флаг за пост от @zebbra с tx_id=1396804 повторяется 4 раза и что это за крокозябры?

Мой вопрос к вам звучит так: что я делаю неправильно и как убрать дубликаты?

Спасибо за понимание.


Призываю @sxiii, @arcange, @ropox, @analise, @oxygendependant, @primus, @zaguzin, @on0tole, @lehard, @vik и фею!

golossqlsqlголосспасибо
33
4.647 GOLOS
0
В избранное
naminutku
На Golos с 2017 M01
33
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (16)
Сортировать по:
Сначала старые