php mysql复杂查询_半复杂的PHP / MySQL Select语句
我目前有3张桌子,我正在用这些桌子来预定某些设备.
这是我的桌子:
tblEquipment:
id name description
1 Camera Takes pictures
2 Projector Projects pictures
3 Laptop Portable Computer
tblEvents:
id start end first_name last_name email
1 2009-08-10 2009-08-11 John Doe jd@email.com
2 2009-08-15 2009-08-16 Jane Doe jd@email.com
tblEventData:
id eventID equipmentID
1 1 1
2 1 2
现在,用户将使用请求的时间提交查询,然后他们将看到所有可用的设备.
因此,使用上述示例,如果用户正在寻找8 / 10-8 / 11之间的设备,则他将看到唯一可用的设备是:equipmentID 3(笔记本电脑).
如何创建查询以仅根据请求的时间返回可用设备?
到目前为止,这是我想出的,但是无法使它起作用:
SELECT tblequipment.id as name, tblEvents.start as start, tblEvents.end as end
FROM tblEquipment
INNER JOIN tblEventData on tblEventData.equipmentID = tblEquipment.id
INNER JOIN tblEvents on tbleventdata.eventID = tblEvents.id
WHERE NOT EXISTS(SELECT * FROM tblEvents WHERE $end >= start AND $start <= end)
有任何想法吗?谢谢!
解决方法:
现在,您的查询具有一个NOT EXISTS,它仅查找在给定的开始时间和结束时间之间发生的事件.换句话说,“选择所有设备,只要在此时间范围内没有事件”.那不是你想要的.您需要:“选择所有设备,只要在此时间范围内没有使用该设备的事件.”
相当于:
SELECT tblequipment.id as name
FROM tblEquipment
WHERE NOT EXISTS
(SELECT * FROM tblEvents
INNER JOIN tblEventData ON (tblEvents.id = tblEventData.eventID)
WHERE $end >= start AND $start <= end
AND tblEventData.equipmentID = tblEquipment.id)
编辑:我还从外部查询中删除了JOIN,因为他们坚持只选择在某些时候保留的设备,这与您要回答的问题根本不相关.
您确实想知道保留了哪些设备,但是要在NOT EXISTS查询中,以将其从最终结果中排除.
标签:select,mysql,php
来源: https://codeday.me/bug/20191107/2003108.html
php mysql复杂查询_半复杂的PHP / MySQL Select语句相关推荐
- mysql交互式查询_客户机程序5―MYSQL交互式查询程序[图]_MySQL
6.7 客户机程序5―交互式查询程序 让我们把迄今为止研究的诸多内容整理一下,编写一个简单的交互式客户机程序.它的功能包括可以进入查询,用通用目标查询处理程序process_query 执行查询,并用 ...
- mysql union查询_一本彻底搞懂MySQL索引优化EXPLAIN百科全书
MySQL逻辑架构介绍 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...
- prometheus监控mysql慢查询_使用Grafana+Prometheus监控mysql服务性能
prometheus(也叫普罗米修斯)官网: grafana官网: 特征 普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的 一个 来利用这一维度 不依赖分布式存储; 单个服务器节 ...
- mysql连接查询_.net core 里连接mysql查询数据的方法
1. 创建新项目-ASP.NET Core Web 应用程序 2. 3. 右键项目-管理 NuGet 程序包(N)... 4. 搜索 Pomelo.EntityFrameworkCore.MySql ...
- clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?
作者 | luanhz 责编 | 郭芮 本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符.RegExp正则匹配.内置字符串函数以及全文索引,最后给出了性能对比. 引言MySQL根 ...
- mysql描述性统计函数_你知道什么是 MySQL 的模糊查询?
作者 | luanhz 责编 | 郭芮 本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符.RegExp正则匹配.内置字符串函数以及全文索引,最后给出了性能对比. 引言 MySQL ...
- mysql 单表多字段查询_单表多字段MySQL模糊查询的实现
MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...
- 面试mysql慢查询_剑指Offer面试题:如何定位并优化慢查询sql
1.根据慢日志定位慢查询sql 使用以下命令查看相关系统变量属性: show variables like '%query%'; 主要看这三个属性: long_query_time : 10.0000 ...
- mysql 关联查询_响应时间长?MySQL查询优化教程来了!
- 点击上方"爱数据学习社"关注我们吧! - 为什么查询会慢?--响应时间过长. 如果把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询, ...
最新文章
- ContentProvider是如何实现数据共享的
- 多行文本溢出显示省略号(…)
- 用VS Code直接浏览GitHub代码 | 12.1K星
- 安卓使用 HTTP 协议访问网络
- 【数据结构总结】第一章:数据结构基本概念
- java8 策略模式_Java 8中的策略模式
- java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
- python人工智能github的一些跑程序技巧(持续更新~)
- Python : async和await、asyncio与aiofiles
- RandomForest随机森林模型训练
- 大数据SQL如何实现笛卡尔积
- 学习spss的心得体会
- 《Data Algorithm》读书笔记七 — 购物篮分析
- JAVA中的运算规则
- 笔记本电脑无法进入睡眠状态_电脑进入睡眠模式后打不开屏幕怎么办
- R语言sem包实现通径分析
- 如何恢复已删除的照片
- Mysql 1146错误 出现Table 'mysql.proc' doesn't exist ( 1146 )
- 图像处理直方图均衡化
- 触宝笔试面试回忆版(不完整)-16暑期实习
热门文章
- 一些Web Service的经验
- Windows 8实用窍门系列:9.Windows 8中使用FlipView
- Oracle Minus关键字 不包含 取差集
- python requests库详解_python的requests库详解
- oracle不要重复记录,Oracle中去重复记录 不用distinct
- SCHAR_MIN常数,C ++中的示例
- 退火算法 贪婪算法_算法贪婪策略简介
- c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装2
- linux文本运行层次,Linux基础知识之---文件系统层级结构
- 错误:使用printf()打印Hello world时未声明'Hello'/ Text