Mysql 在sql中联接两个表并筛选记录

Mysql 在sql中联接两个表并筛选记录,mysql,sql,sql-server,sql-server-2008,Mysql,Sql,Sql Server,Sql Server 2008,我需要将房间号上的两个表值连接起来 这是我的桌子: RoomStatusTable ---------------------------------------------------- | Room No | Type | Date | Descriprion | ---------------------------------------------------- | 1 | AC |22 Jan 2015| VA

我需要将
房间号
上的两个表值连接起来

这是我的桌子:

RoomStatusTable

----------------------------------------------------
| Room No   |   Type   |  Date     |  Descriprion  |
----------------------------------------------------
|  1        |    AC    |22 Jan 2015|   VA          |
|  2        |    AC    |22 Jan 2015|   VA          |
|  3        |    AC    |22 Jan 2015|   VA          |
|  4        |    AC    |22 Jan 2015|   VA          |
----------------------------------------------------
| Room No   |   Type   |  Date     |  Descriprion  |
----------------------------------------------------
|  1        |    AC    |22 Jan 2015|   BK001       |
|  2        |    AC    |22 Jan 2015|   BLOCK       |
|  4        |    AC    |22 Jan 2015|   OC001       |
客房预订表

----------------------------------------------------
| Room No   |   Type   |  Date     |  Descriprion  |
----------------------------------------------------
|  1        |    AC    |22 Jan 2015|   VA          |
|  2        |    AC    |22 Jan 2015|   VA          |
|  3        |    AC    |22 Jan 2015|   VA          |
|  4        |    AC    |22 Jan 2015|   VA          |
----------------------------------------------------
| Room No   |   Type   |  Date     |  Descriprion  |
----------------------------------------------------
|  1        |    AC    |22 Jan 2015|   BK001       |
|  2        |    AC    |22 Jan 2015|   BLOCK       |
|  4        |    AC    |22 Jan 2015|   OC001       |
我需要如下结果:

----------------------------------------------------
| Room No   |   Type   |  Date     |  Descriprion  |
----------------------------------------------------
|  1        |    AC    |22 Jan 2015|   BK001       |
|  2        |    AC    |22 Jan 2015|   Block       |
|  3        |    AC    |22 Jan 2015|   VA          |
|  4        |    AC    |22 Jan 2015|   OC001       |

与此类似,表1包含所有记录,但是,表2仅包含基于作为我的结果的更改描述的占用记录。

使用
左连接
从两个表中获取数据:

select r1.room_no,
       r1.Type,
       r1.Date, 
case when r2.Descriprion is null then r1.Descriprion else r2.Descriprion end as description   
from RoomStatus r1 
left join RoomBooked r2 on r1.room_no=r2.room_no
order by r1.room_no;

使用Coalesce函数,该函数返回两个描述列之间的第一个不可为null的值

select r1.room_no,
       r1.Type,
       r1.Date, 
       coalesce(r2.Descriprion ,r1.Descriprion) As description   
from RoomStatus r1 
left join RoomBooked r2 on r1.room_no = r2.room_no
order by r1.room_no;

为什么要同时标记MySQL和SQL server?您正在使用哪个数据库系统?