我想在mysql的两个表中使用多个内连接,
table1有列"主题,考试时间,讲师,监护人,房间"
在我的table2中有列' subject1' ' subject2' ' subject3'
我想根据subject1,subject2,subject3在我的表2中显示我的table1中的主题,考试时间,教师等
到目前为止,我的代码是
select subject,examinationtime,instructor,proctor,room
from table1
inner join table2 on table1.subject=table2.subject1
到目前为止它适用于subject1但是如果我尝试添加subject2,则datagrid视图变为空白
这是我尝试的代码
select subject,examinationtime,instructor,proctor,room
from table1
inner join table2 on table1.subject=table2.subject1
and table1.subject=table2.subject2
我尝试使用'和'但datagrid视图变为空白。我想我需要使用别名,但我不知道该怎么做。
答案 0 :(得分:0)
我的猜测是,您只需在查询中从and
切换到or
:
select subject,examinationtime,instructor,proctor,room
from table1
inner join table2 on table1.subject=table2.subject1
or table1.subject=table2.subject2
答案 1 :(得分:0)
以下是您的查询,重写了如何使用表别名':
SELECT
a.subject,
a.examinationtime,
a.instructor,
a.proctor,
a.room
FROM table1 a
LEFT JOIN table2 b
ON a.subject = b.subject1
LEFT JOIN table2 c
ON a.subject = c.subject2
LEFT JOIN table2 d
ON a.subject = d.subject3
这里的答案是一个应该产生你描述的结果的查询:
SELECT
b.subject,
b.examinationtime,
b.instructor,
b.proctor,
b.room
FROM table2 a
INNER JOIN table1 b
ON a.subject1 = b.subject
OR a.subject2 = b.subject
OR a.subject3 = b.subject