gpt4 book ai didi

sqlite - 如何在单个查询中从多个表中读取?

转载 作者:行者123 更新时间:2023-12-03 17:56:35 25 4
gpt4 key购买 nike

在SQLite中,我有3个表question_tablequestion_description_tableoption_table

question_table
Id question1 question2 question3 ...
1 <data> <data> <data> ...
2 <data> <data> <data> ...
3 <data> <data> <data> ...

question_description_table
Id description1 description2 description2 ...
1 <data> <data> <data> ...
2 <data> <data> <data>...
3 <data> <data> <data>...
.
.

option_table
Id option1 option2 option3 ...
1 <data> <data> <data> ...
2 <data> <data> <data>...
.
.


对于每个问题,我需要在单个查询中从3个表中获取数据;对于问题1,查询应从


question1- question_table中的列,
description_table1中的 description_table列,
以及 option1中的前四个( option2option3option4option_table)(假设每个问题有四个选项)。


我尝试下面的命令:

SELECT
question_table.question1,
question_description_table.description1
FROM
question_table
INNER JOIN
question_description_table ON question_description_table.id=question_table.id
;


问题是将option_table与其他两个连接。是JOIN解决方案吗?如果可以,该如何使用?

最佳答案

如果只是回答您的问题,那么应该是这样的:

select *
from question_table qt, qustion_description_table qdt, option_table ot
where qt.id = qdt.id and qdt.id = ot.id


但是,我认为您应该重组表。因此,您的 question_table应包含和 IDQUESTION以及(如果需要) DESCRIPTION列。

ID | QUESTION | DESCRIPTION
... ... ...


然后,您的 option_table可能包含 IDQUESTION_IDOPTIONCORRECT1-正确, 0-错误)

ID | QUESTION_ID | OPTION | CORRECT
... ... ... ...


这样,它的结构更加合理,您只需更改相应的 QUESTION_ID即可更改问题的选项。另外,如果您决定选择问题的选项,则可以运行一个简单的查询:

select qt.question, qt.description, ot.option, ot.correct
from question_table qt, option_table ot
where qt.id = ot.question_id and qt.question_id in (...)

关于sqlite - 如何在单个查询中从多个表中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com