Mysql 如果连接表don';不包含行

Mysql 如果连接表don';不包含行,mysql,join,Mysql,Join,以下是我的表格结构: ___房间 |--------|-------------| | ROO_Id | ROO_HotelId | |--------|-------------| | 1 | ABC123 | | 2 | ABC123 | | 3 | ABC123 | |--------|-------------| ___订阅 |-------------|-----------| | SUB_HotelId | SUB_Lim

以下是我的表格结构:

___房间

|--------|-------------|
| ROO_Id | ROO_HotelId |
|--------|-------------|
|      1 |      ABC123 |
|      2 |      ABC123 |
|      3 |      ABC123 |
|--------|-------------|
___订阅

|-------------|-----------|
| SUB_HotelId | SUB_Limit |
|-------------|-----------|
|      ABC123 |        19 |
|      XYZ987 |        23 |
|-------------|-----------|
\uuuuuuuuuuuu Rooms
具有所需
HotelId
的行时,此查询工作

SELECT 
    COUNT(ROO_Id) AS SUB_RoomNumber, 
    SUB_Limit 
FROM ___Subscriptions 
LEFT JOIN ___Rooms 
    ON ___Rooms.ROO_HotelId = ___Subscriptions.SUB_HotelId 
WHERE SUB_HotelId = 'ABC123'
    AND ROO_HotelId = 'ABC123'

|----------------|-----------|
| SUB_RoomNumber | SUB_Limit |
|----------------|-----------|
|              3 |        19 |
|----------------|-----------|
对于酒店
XYZ987
,此酒店在
\uuuuuuuuuuuuuuuuuuuuuuurooms
中没有实际房间,并且
子限额的查询返回空值

|----------------|-----------|
| SUB_RoomNumber | SUB_Limit |
|----------------|-----------|
|              0 |      NULL |
|----------------|-----------|

为什么请?

不要在Where条件内检查
ROO_HotelId='XYZ987'
。如果
\uuuu Rooms
表中没有匹配的
ROO\u HotelId
,则不会显示任何数据(如果使用Where)

基本上,一旦在HotelId上完成了表之间的连接,就只需要为其中一个表设置Where条件。在内部联接的情况下,可以使用任意一个表。但是,在左联接的情况下,需要使用左表

使用以下命令:

SELECT 
    COUNT(ROO_Id) AS SUB_RoomNumber, 
    SUB_Limit 
FROM ___Subscriptions 
LEFT JOIN ___Rooms 
    ON ___Rooms.ROO_HotelId = ___Subscriptions.SUB_HotelId 
WHERE SUB_HotelId = 'XYZ987'