Как я могу сравнить два набора данных SQLlite в Python и найти сходства? - PullRequest
0 голосов
/ 14 сентября 2018

Так что в принципе у меня есть две базы данных. Один для «студента» и один для «учителя». База данных учителя уже сохранена на сервере, и база данных студентов будет создана с помощью ввода пользователя.

это для учителя (также сохраняется отдельно в файле teacher.db)

c.execute(“””CREATE TABLE teacher( 
ID varchar,
name text
age integer
interest1 varchar
interest2 varchar
)”””) 
conn.commit()
conn.close()

пример: c.execute(“INSERT INTO student VALUES (‘Lisa’, ‘35’, ‘spanish’, ‘productivity’)

Это таблица для студентов, и данные будут сохранены в отдельном файле с именем student.db

c.execute(“””CREATE TABLE student( 
ID varchar,
name text
age integer
interest1 varchar
interest2 varchar
)”””) 
conn.commit()
conn.close()

А пример человека выглядит так:

c.execute(“INSERT INTO student VALUES (‘Max’, ‘23’, ‘spanish’, ‘programming’)” 

Теперь я хочу сравнить ввод пользователя, который создал вторую базу данных. Мы видим, что значение «испанский» используется обеими сторонами. Теперь я хочу создать алгоритм, который выглядит следующим образом: если ключевое слово, используемое от студента, равно одному из наборов данных в базе данных учителей, я хочу распечатать их имя.

Я пытался работать тогда, когда ничего не получалось.

Это мой второй день в изучении Python, будьте добры, даже если все это звучит довольно глупо

1 Ответ

0 голосов
/ 14 сентября 2018

Я написал SQL-запрос, я все еще думаю о способах упростить это,

SELECT name 
from student 
where 
student.interest1 in ((select interest1 from teacher) UNION (select interest2 from teacher))
or student.interest2 in ((select interest1 from teacher) UNION (select interest2 from teacher));

, это должно сработать, этот запрос работает, проверяя, совпадает интереса1 или интереса2 студента с каким-либо одним интересом изучитель.Просто запустите этот курсор внутри курсора, он должен вернуть вам набор имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...