首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 2列查询

MySQL 2列查询
EN

Stack Overflow用户
提问于 2018-09-06 01:27:44
回答 3查看 37关注 0票数 0

我正在为我的酒店房间开发一个预订系统(PHP-MySQL)。

我有两张桌子

rooms_table

代码语言:javascript
复制
----------+---------------+----------------+
room_id   |   room_name   |   room_type    |
----------+---------------+----------------+
125       |   name 2      |    deluxe      |
----------+---------------+----------------+
126       |   name 3      |    deluxe      |
----------+---------------+----------------+

rooms_avl_table (我正在为房间保存不可用的天数)

代码语言:javascript
复制
----------+---------------+----------------+
avl_id    |  room_id      |   navl_date    |
----------+---------------+----------------+
12        |    125        | 2018-10-02     |
----------+---------------+----------------+
13        |    125        | 2018-09-05     |
----------+---------------+----------------+

我想列出rooms_avl_table表中没有列出的所有房间。即如果搜索与日期"2018-09-05",需要显示所有房间与126 (room_id) -这是不可用的。

EN

回答 3

Stack Overflow用户

发布于 2018-09-06 01:34:30

这应该是可行的:

代码语言:javascript
复制
select * from rooms_table r
left join rooms_avl a on r.room_id = a.room_id and a.navl_date = '2018-09-05'
where a.room_id is null
票数 0
EN

Stack Overflow用户

发布于 2018-09-06 01:37:45

除了@isaace提供的LEFT JOIN with checking for NULL解决方案之外,您还可以使用Correlated Subquery with NOT IN子句:

代码语言:javascript
复制
SELECT * FROM rooms_table AS rt 
WHERE rt.room_id NOT IN (SELECT rat.room_id 
                         FROM rooms_avt_table AS rat 
                         WHERE rat.room_id = rt.room_id 
                           AND rat.navl_date = '2018-09-05'
                        )
票数 0
EN

Stack Overflow用户

发布于 2018-09-06 01:41:45

使用不存在

代码语言:javascript
复制
SELECT * FROM rooms_table AS r
WHERE r.room_id NOT EXISTS (SELECT rv.room_id 
                         FROM rooms_avt_table AS rv
                         WHERE rv.room_id = r.room_id 
                           AND rv.navl_date = '2018-09-05'
                        )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52190565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档