从两个表中选择返回空值

时间:2014-02-03 11:03:50

标签: mysql sql

我有两张桌子,一张是房间列表,另一张是用户访问房间

房间

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中的两行

2 个答案:

答案 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 ......
对不起 。我惊讶地追踪它......: