我有两张表room、room_price;
select * from room a
left join price b
on a.roomid=b.roomid
where b.date='20160428'
这样不行吧,,这样子应该查不到roomid为2的房间信息了吧
@笑天下: 可以的 因为是左链接 取不到会返回NULL 我确定
@skin33:
@笑天下: 现在想查询某一天的房间价格,如果room_price没有当天记录,只返回房间信息,其它为空.
你提问是这样子的 我想你是不是想说有没有那天的数据都返回
@skin33: 是的
@笑天下: where b.date='20160304' or b.date is null
这样就好啦
@skin33: 这样可以
左联接
room
left join price
on ...
where price = ? or price is null
room
left join price
on ...
where price = ? or price is null
and price.date = "....";
这样还是会把当天没有price记录的信息过滤掉吧。。
我问题没描述好,price表里没有记录不是没有price字段。
select a.*, b.price from room a left join (select roomid, price from room_price where date='20160304') b on a.roomid=b.roomid
OK,这个可以
@笑天下: 那结贴吧