使用mysql列出两个联接表中的用户

omjgkv6w  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我有两张table:
___酒店

|-------------|------------|
| HOT_HotelId | HOT_Name   |
|-------------|------------|
|           1 |    Hotel A |
|           2 |    Hotel B |
|-------------|------------|

___用户快照链接

|--------|------------|-------------|
| UHL_Id | UHL_UserId | UHL_HotelId |
|--------|------------|-------------|
|      1 |          1 |             |
|      2 |        131 |           1 |
|      3 |        131 |           2 |
|--------|------------|-------------|

我想列出 ___Hotels 中的用户 ___UsersHotelsLink .
所以,我使用这个工作查询:

SELECT * 
FROM ___UsersHotelsLink
LEFT JOIN ___Hotels 
    ON ___UsersHotelsLink.UHL_HotelId = ___Hotels.HOT_HotelId
WHERE HOT_Status != "inactive"
    AND UHL_Status != "inactive"
    AND UHL_UserId = 131
ORDER BY HOT_Creationdate ASC

当用户(131)有一个酒店进入时,这个工作就开始了 ___Hotels table。但如果我替换 1311 (巫婆是超级管理员),它不工作。它不返回任何行。
我想要一排回程票。
我做错什么了?
谢谢。

pkbketx9

pkbketx91#

我假设您的意思是希望在没有 hotelid . 假设是这样,你的 where 标准是否定 outer join 从而导致不返回任何行。把它移到 on 条件,它应该返回给用户 null 酒店数据:

SELECT * 
FROM ___UsersHotelsLink
LEFT JOIN ___Hotels 
    ON ___UsersHotelsLink.UHL_HotelId = ___Hotels.HOT_HotelId 
        AND HOT_Status != "inactive"
WHERE UHL_Status != "inactive"
    AND UHL_UserId = 131
ORDER BY HOT_Creationdate ASC

相关问题