如何 select 三个 sql 表的不同值并与 python sqlite3 执行内部连接?

How to select the distinct values of three sql tables and perform inner join with python sqlite3?

我正在尝试对来自 SQLite 数据库的三个表的不同值执行内部联接。我尝试了多次但都失败了。请指导我。

下面是我想要实现的伪代码

sql = ''' 
SELECT DISTINCT lesson_id, question_id FROM lesson_practice_questions as lpq

INNER JOIN 
SELECT DISTINCT topic_id, lesson_id FROM chapter_lessons as cl
WHERE cl.topic_id==2 
ON cl.lesson_id = lpq.lesson_id 

INNER JOIN 
SELECT DISTINCT question_id, subject_id, question_type_id, knowledge_type_ids complexity_level FROM questions as q
ON q.question_id = lpq.question_id;'''

cur.execute(sql)

非常感谢@eshirvana 抽出时间来帮忙!

解决模棱两可的完美解决方案供以后Whosebug参考:

sql = '''SELECT
    lpq.lesson_id, cl.lesson_id,
    topic_id,
    q.question_id, lpq.question_id,
    subject_id,
    question_type_id,
    knowledge_type_ids,
    complexity
FROM  lesson_practice_questions as lpq
INNER JOIN chapter_lessons as cl on cl.topic_id = 2 and cl.lesson_id = lpq.lesson_id
INNER JOIN questions as q ON q.question_id = lpq.question_id;'''

这是正确的 sql 语法,但是如果这不是正确的输出,您需要提供示例数据和所需的输出:

SELECT
    lpq.lesson_id,
    question_id,
    topic_id,
    lesson_id,
    question_id,
    subject_id,
    question_type_id,
    knowledge_type_ids,
    complexity_level
FROM  lesson_practice_questions as lpq
INNER JOIN chapter_lessons as cl on cl.topic_id = 2 and cl.lesson_id = lpq.lesson_id
INNER JOIN questions as q ON q.question_id = lpq.question_id;