MYSQL连接基于两个不同的参数



我的代码:

SELECT eval_table.form, teacher_table.name AS Subject, teacher_table.name0 AS Author  
FROM `eval_table`
JOIN `teacher_table` ON eval_table.subj = teacher_table.user_id;

结果:

John Doe

您可以对teacher_table进行第二次连接,然后按照指示返回结果。

下面的SQL给出了一个这样的例子:

SELECT  et.form,
tt1.name AS Subject,
tt2.name0 AS Author  
FROM  eval_table et
INNER JOIN teacher_table tt1 ON tt1.user_id = et.subj
INNER JOIN teacher_table tt2 ON tt2.user_id = et.auth;

在本例中,到teacher_table的第一个连接在user_id = et.subj上,按照现有的连接,并使用别名tt1。第二个连接在user_id = et.auth上,使用别名tt2

使用上面的方法,您可以在不同的列上对同一个表进行多个连接。使用别名表名(即et,tt1tt2)可以多次使用同一个表,但在输出中唯一地引用它们。

请注意,SQL是未测试的,但应该给出如何继续的指示。

您想要别名表,使您可以像使用不同的表一样使用它:

SELECT evaluations.form, teachers.name, evaluators.name 
FROM evaluations 
JOIN teachers 
ON evaluations.subject = teachers.name
JOIN teachers AS evaluators 
ON evaluations.evaluator = evaluators.name;

作为题外话,我冒昧地稍微标准化了命名方案。使用复数或单数,大写或不大写,但要保持一致。表不需要_table后缀。他们知道自己是什么。

相关内容

  • 没有找到相关文章

最新更新