[英]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.