吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2266|回复: 23
收起左侧

[已解决] 请教一个MySQL多表查询的问题

  [复制链接]
幸识余教 发表于 2020-12-21 13:15
本帖最后由 幸识余教 于 2020-12-23 10:39 编辑


有三个MySQL数据表,表一:订餐情况表tb_order,表二:消费流水表tb_expend,表三:人员表tb_user
表结构如上图所示,详细数据表下载地址:  https://luckytou.lanzouj.com/b01nuw0na
订餐情况表tb_order说明:breakfast早餐订餐情况,lunch午餐订餐情况,值为1表示已订餐,值为零或者没有记录表示未订餐。Orderdate表示是订的是哪一天的早餐午餐。
消费流水表tb_expend:expens 消费金额。消费金额为5,表示去餐厅消费用过早餐,消费金额为20表示去餐厅消费用过午餐,expensdate是消费的日期。
请教大家:
问题一:如何查询出一周内所有预订了午餐,但是没有去餐厅用过午餐的人员,
问题二:如何查询出一周内所有去餐厅用过早餐,但是没有预订过早餐的人员
请使用SQL命令和编程语言(最好是phpjsp)来解决问题。
也可以在悬赏贴:https://www.52pojie.cn/thread-1333857-1-1.html 里面答复

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qiaoling 发表于 2020-12-21 13:33
面向论坛编程
pxhzai 发表于 2020-12-21 13:39
本帖最后由 pxhzai 于 2020-12-21 13:48 编辑

链接失效
K091418 发表于 2020-12-21 13:48
张海洋 发表于 2020-12-21 14:08
啊这……这还得群策群力?
mysky 发表于 2020-12-21 14:24
直接用多表查询就行了。难点是查询的时间条件,其他的条件都可以直接判断。时间的话先用代码算出现在是周几。然后取出这周的周一和周末。再在sql里面有date_format()函数格式化时间查询
feichedang_caj 发表于 2020-12-21 14:34
路过,帮顶了。
yjq907 发表于 2020-12-21 15:15
问题1:查所有预订午餐的ID,用 not in(这里用子查询,查所有的已经预订的) 最后加上一周内的时间范围条件查询。
问题2:把上面的翻过来就行了。
xu741852 发表于 2020-12-21 15:20
表没看懂。条件自己改改。
SELECT
        `appt (2)`.username,
        `appt (2)`.lunch,
        `appt (2)`.orderdate,
        `expense (2)`.expens,
        `expense (2)`.expensdate
FROM
        `appt (2)`
        LEFT JOIN `expense (2)` ON `appt (2)`.id = `expense (2)`.id
WHERE
        `expense (2)`.expens = 5
        AND `appt (2)`.lunch =1
下辈子当鱼 发表于 2020-12-21 15:34
有个简单的思路:

1. tb_order表和 tb_expend 联查,搜索 userid。然后用户表 id in( 搜索语句) 获取全部用户信息  。
select * from tb_user where id in ( select o.userid from tb_order as o,tb_epend as e where o.userid = e.userid and o.lunch = 1 and e.expens != 20 and e.orderdata >= '2020-11-1' and e.orderdate <= '2020-11-7')
第二个换下条件

我这里没测试,只是个思路,仅供参考。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-16 15:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表