我有两张桌子,一张是房间列表,另一张是用户访问房间
房间
id name
---------
1 rm101
2 rm102
3 rm103
4 rm104
等
room_access
rid uid blg ben
--------------
1 1 1 1
2 1 0 1
...
现在我需要从房间中选择所有房间并加入房间访问,但是每个房间,特定用户,例如uid = 1,应该单独返回房间访问数据,以及房间访问中找不到的数据,这个案例房间3和4
输出将是
rid uid blg ben
--------------
1 1 1 1
2 1 0 1
3 1 0 0
4 1 0 0
这是我试过的
SELECT r . * , ra.blg, ra.ben, ra.uid
FROM rooms r
LEFT JOIN room_access ra ON r.id = ra.rid WHERE ra.uid =1
它只返回room_access中的两行
答案 0 :(得分:2)
试试这个:
SELECT r . * , ra.blg, ra.ben, ra.uid
FROM rooms r
LEFT JOIN
room_access ra
ON
r.id = ra.rid
AND
ra.uid =1
答案 1 :(得分:0)
LEFT JOIN的样本:
表>>人数:
姓
名字
表>>订单:
OrderNo
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
检查LEFT或RIGHT JOIN ......
对不起 。我惊讶地追踪它......: