Сравните 2 столбца и найдите только уникальные значения - PullRequest
0 голосов
/ 26 февраля 2020

заранее извиняюсь, если мое форматирование плохое, здесь новое.

Я пытаюсь получить только уникальные значения из 2 отдельных столбцов, которые находятся в одной таблице. Например: https://i.stack.imgur.com/SKZjT.png

При сравнении column1 с column2 я хочу получить результат g

При сравнении column2 с column1 я хочу получить результат h

Я пытаюсь реализовать эту логику c, но она не работает, любой совет будет признателен!

SELECT column1 FROM list WHERE column1!=column2

Редактировать 1:

Вот фактические наборы данных, с которыми я работаю: https://i.stack.imgur.com/VfOU5.png

В основном я пишу небольшую программу, чтобы проверить, являются ли действия, которым я следую, также последователи (а потом наоборот, но это на потом)

Вот код (как предложено ниже), который я пытаюсь, но только распечатывает []:

# Open datas.db file for SQLite
db = cs50.SQL("sqlite:///datas.db")

followeronly = db.execute("SELECT followers FROM lists WHERE followers NOT IN(SELECT following FROM lists)")
print(followeronly)

Извините за путаницу!

1 Ответ

1 голос
/ 26 февраля 2020

Предложение WHERE в вашем запросе оценивает только столбцы в одной строке за раз. Таким образом, для первой строки предложение WHERE сравнивает a! = H, которое имеет значение true, и строка добавляется в набор результатов. Это происходит и для всех остальных строк, потому что column1 никогда не равняется column2 ни в одной из ваших строк. Таким образом, все строки возвращаются. Вам нужно проверять, существует ли column1 в любом столбце строки2 каждый раз, когда вы оцениваете столбец строки1.

Один из возможных способов получить то, что вы хотите, - это использовать сравнение IN с вложенным запросом в предложении WHERE:

SELECT column1 FROM list WHERE column1 NOT IN (SELECT column2 FROM list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...