[英]List users from two joined tables with mySQL
我有兩個表:
___酒店
|-------------|------------|
| HOT_HotelId | HOT_Name |
|-------------|------------|
| 1 | Hotel A |
| 2 | Hotel B |
|-------------|------------|
___UsersHotelsLink
|--------|------------|-------------|
| 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
表中有一家酒店時,此功能起作用。 但是,如果我將131
替換為1
(女巫是超級管理員),它將無法正常工作。 它不返回任何行。
我想退回一行。
請問我做錯了什么?
非常感謝。
我假設您的意思是您希望在沒有hotelid
的用戶搜索時返回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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.