MYSQL 根据两个不同的参数加入
MYSQL joining based on two different parameters
我的代码:
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;
结果:
形式
主题
作者
内部审核
李四
李四
我的问题是我需要同时 JOIN teacher_table ON eval_table.auth = teacher_table.user_id;
但只有 teacher_table.name0
才能得到以下结果:
形式
主题
作者
内部审查
李四
李四
teacher_table.name0
是 teacher_table.name
的虚拟副本
您可以对 teacher_table
进行第二次连接,然后 return 显示结果。
下面的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
.
使用上述方法,您可以对不同列上的同一 table 进行多个连接。为 table 名称(即 et
、tt1
和 tt2
)使用 别名 可以使用相同的 table 不止一次,但在输出中唯一引用它们。
请注意,SQL 未经测试,但应该给出如何继续的指示。
您想为 table 添加别名,这样您就可以像使用另一个别名一样使用它:
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;
顺便说一句,我冒昧地稍微标准化了命名方案。使用复数或单数,大写或不大写,但要保持一致。而 tables 不需要 _table 后缀。他们知道自己是什么。
我的代码:
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;
结果:
形式 | 主题 | 作者 |
---|---|---|
内部审核 | 李四 | 李四 |
我的问题是我需要同时 JOIN teacher_table ON eval_table.auth = teacher_table.user_id;
但只有 teacher_table.name0
才能得到以下结果:
形式 | 主题 | 作者 |
---|---|---|
内部审查 | 李四 | 李四 |
teacher_table.name0
是 teacher_table.name
您可以对 teacher_table
进行第二次连接,然后 return 显示结果。
下面的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
.
使用上述方法,您可以对不同列上的同一 table 进行多个连接。为 table 名称(即 et
、tt1
和 tt2
)使用 别名 可以使用相同的 table 不止一次,但在输出中唯一引用它们。
请注意,SQL 未经测试,但应该给出如何继续的指示。
您想为 table 添加别名,这样您就可以像使用另一个别名一样使用它:
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;
顺便说一句,我冒昧地稍微标准化了命名方案。使用复数或单数,大写或不大写,但要保持一致。而 tables 不需要 _table 后缀。他们知道自己是什么。