[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 и фею!