繁体   English   中英

从两个表中获取数据?

[英]Get data from two tables?

我有2张桌子。

一个问题:

id | question
1   How old are you?
2   Are you male of female?

另一个举行考试:

id  |   title     |  question_ids
1    Summer Exam     [1,2]

我的问题是,我想从考试表中选择一个考试,并获取与该特定考试有关的所有问题(question_ids字段),但要从问题表中获取问题,而不仅仅是从question_ids中存储的id。

我怎样才能做到这一点?

您可以使用FIND_IN_SET命令。 请注意,这不会使用您的索引,因此它可能会很慢

SELECT title, question
FROM questions
INNER JOIN exams
ON FIND_IN_SET(questions.id, exams.question_ids)

您也可以使用IN 请注意,这仅在选择特定考试时有效。 如果不选择特定的考试,您将返回整个考试表中question_ids列中引用的每条记录

SELECT title, question
FROM questions, exams
WHERE exams.id = 1
AND questions.id IN (question_ids)

也许将您的问题表中的id列更改为q_id,并将question_id也称为q_id,以便您有一种清晰的方式链接表。 例如,将您的id列更改为exam_id,这样您的名字就不会那么混乱了。 然后您可以使用内部联接...

SELECT q.q_id, q.question, e.exam 
FROM questions q 
 INNER JOIN exams e ON q.q_id=e.q_id 
WHERE ......

这样的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM