为什么我的SQL UNION没有工作?

时间:2016-03-20 12:54:03

标签: sql database

我有三个表,我试图查询以这种格式返回单个表:

Message   Period   Date   Firstname   Lastname   Room_ID   Description
   x         x       x        x          x          x           x
   x         x       x        x          x          x           x

表'消息'列有Message,Period,Date,Room_ID,Teacher_ID。表'房间'有列Room_ID,描述。表'教师'列有Teacher_ID,名字,姓氏。

我的SQL语句在哪里出错?

SELECT Message, Period, Date FROM message
UNION
SELECT * FROM rooms
UNION
SELECT Firstname, Lastname
FROM teacher
RIGHT JOIN message
ON teacher.Teacher_ID=message.Teacher_ID

每个SELECT查询都可以自行运行,但我很难将它们组合起来。

1 个答案:

答案 0 :(得分:2)

UNION合并了来自不同表格的。所有子查询都需要具有相同的列。

据推测,您需要join s:

SELECT m.Message, m.Period, m.Date, t.Firstname, t.LastName, r.roomID, r.Description
FROM message m JOIN
     teacher t
     ON t.Teacher_ID = m.Teacher_ID JOIN
     rooms r
     ON m.Room_ID = r.Room_ID;