首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何转换MySQL Seb-选择以连接

如何转换MySQL Seb-选择以连接
EN

Stack Overflow用户
提问于 2017-06-19 07:00:08
回答 0查看 35关注 0票数 0

我试图写一个SELECT在mySQL (和PHP),将检索“图像”表中的所有行,尚未由某个用户排名。

下面是我的表格:

表:图片

代码语言:javascript
运行
AI代码解释
复制
+-----------+----------+-----------+----------+------------+
| Index     | Rank_Good| Rank_OK   | Rank_Bad | Is_Allowed |
+-----------+----------+-----------+----------+------------+
| 201       | 2        | 9         | 28       | true       |
| 202       | 11       | 20        | 39       | false      |
| 203       | 36       | 14        | 7        | true       |
+-----------+----------+-----------+----------+------------+

Table2: WhoAlreadyClickedImg (没有索引)

代码语言:javascript
运行
AI代码解释
复制
+------------+-----------------+-----------+
| ImageIndex | UserWhoRankedIt | RankGiven |
+------------+-----------------+-----------+
| 202        | 87              | OK        |
+------------+-----------------+-----------+
| 202        | 93              | Bad       |
+------------+-----------------+-----------+
| 204        | 93              | Good      |
+------------+-----------------+-----------+
| 203        | 94              | Bad       |
+------------+-----------------+-----------+

我的逻辑是:当用户对图像进行排名时,我会在"WhoAlreadyClickedImg“表中添加一行,其中包含刚刚对其进行排名的用户的id和图像id (以及排名)。(这将为该表中的每个图像创建数千行,并且它的增长速度很快。)

然后,当用户想要对一张图片进行排名时,我会在"WhoAlreadyClickedImg“表中查找哪些图片还没有被他排名,并将" images”表中的参数Images.Is_Allowed添加到查询中(所以我将只向他显示一张可以排名的图片)。

首先,我使用sub-select来做这件事,但事实证明,它会为它检查的每一行调用subselect,而且它非常非常慢。

代码语言:javascript
运行
AI代码解释
复制
SELECT Images.Index 
FROM Images 
WHERE Images.Index NOT IN 
         (
            SELECT WhoAlreadyClickedImg.ImageIndex 
                 FROM WhoAlreadyClickedImg 
                 WHERE WhoAlreadyClickedImg.UserWhoRankedIt = 93
         );
AND Images.Is_Allowed = 1 
ORDER BY RAND()
LIMIT 1

我不知道怎么使用JOIN (从来没有做过,也不熟悉什么是最好的-- Left join/inner还是right)

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44624130

复制
相关文章
MySql如何远程连接
通过select*from mysql.user 查看用户及权限这个是可以查看权限的。。
斯文的程序
2019/11/07
6.9K0
navicat连接mysql教程_navicat如何连接mysql?navicat 连接mysql Navicat使用教程
用Phpmyadmin导入导出数据受一定限制或服务商不配合提供mysql数据库的源文件,mysql数据库管理工具navicat for mysql,对于不怎么喜欢图形界面或者不太方便使用SQL的时候。我们可以通过用这个图形界面数据库管理工具来管理mysql,可以考虑使用第三方软件备份推荐使用Navicat for MySQL。
全栈程序员站长
2022/09/18
17.8K0
navicat连接mysql教程_navicat如何连接mysql?navicat 连接mysql Navicat使用教程
如何为 MySQL 选择 CPU?
MySQL 服务器性能受制于整个系统最薄弱的环节,承载它的操作系统和硬件往往是限制因素。磁盘大小、可用内存和 CPU 资源、网络,以及所有连接它们的组件,都会限制系统的最终容量。
博文视点Broadview
2020/11/30
1.3K0
如何为 MySQL 选择 CPU?
如何安装与连接MySQL?
本文用详细的步骤说明,帮助你一步步掌握MySQL的下载、安装和服务启动,客户端的安装、连接和测试。帮你避开初学MySQL使用中的那些坑。
王树义
2018/08/22
3.1K0
如何安装与连接MySQL?
MySQL如何选择合适的索引
小强前几篇文章介绍了mysql的索引原理以及sql优化的一些小技巧。mysql底层的算法选择哪种索引,有时候会和我们想象的不一样,大家可以继续往下看。
程序员小强
2019/09/06
4.2K0
MySQL如何选择合适的索引
mysql 事务隔离级别如何选择
数据丢失,两个事务同时进行,一个成功一个失败,造成数据回滚,或者两个都成功造成数据覆盖
海涛
2020/01/15
1.5K0
mysql—如何为innodb选择主键
因为在innodb表中,每一个非主键索引的叶子节点上都会存储主键列的信息, 所以如果主键索引太大,会导致其他非主键索引页变大, 降低索引的查询效率
全栈程序员站长
2021/04/07
4.3K0
如何通过公网代理连接MySQL
本节主要介绍通过云主机自带的iptables(防火墙)功能来做代理服务的转发,因为MySQL的用户比较多可以看到很多网友对这里也有一些需求所以这里以它为例,但通过本方式除MySQL外还可以实现很多服务(Redis\MongoDB\SQLServer)内外网的互通。 以MySQL为例本机介绍三个话题:
研究僧
2020/06/06
5.6K0
如何使用码匠连接 MySQL
目前码匠已经实现了与 MySQL 数据源的连接,支持书写 SQL 语句,也支持通过图形化界面对数据进行增、删、改、查, 同时还支持将数据绑定至各种组件,并通过简单的代码实现数据的可视化和计算等操作,能让您快速、高效地搭建应用和内部系统。
码匠Majiang
2023/02/22
1.8K0
如何使用码匠连接 MySQL
如何设置Mysql 加密连接SSL
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
云知识Online
2018/05/03
4.8K0
谈谈MySQL如何选择float, double, decimal
我们知道在MySQL中有3种类型可以表示实数,分别是float,double和decimal。关于如何合理得使用这三种类型,网上的答案也层出不穷。但是究竟该选择哪一种类型,好像并没有统一的答案,接下来,将通过一个例子来说明什么情况下选择float,什么情况下选择double,什么情况下选择decimal。相信对这个例子的剖析之后,你就会明白什么时候用什么样的类型
麦洛
2021/08/23
5K0
谈谈MySQL如何选择float, double, decimal
如何开启mysql远程连接管理
如何在本地远程连接管理搭建在cvm服务器上的mysql服务,首先排除如防火墙和安全组等安全策略的限制
云知识Online
2018/05/03
4.1K0
如何开启mysql远程连接管理
MySQL 连接挂死了!该如何排查?
近期由测试反馈的问题有点多,其中关于系统可靠性测试提出的问题令人感到头疼,一来这类问题有时候属于“偶发”现象,难以在环境上快速复现;二来则是可靠性问题的定位链条有时候变得很长,极端情况下可能要从 A 服务追踪到 Z 服务,或者是从应用代码追溯到硬件层面。
程序员小富
2022/12/10
3.3K0
MySQL 连接挂死了!该如何排查?
你真的知道如何连接mysql么
可以在my.cnf配置文件的[client]标签下增加用户信息处理。但是,该方式默认使用的/etc/my.cnf配置文件下的信息,因此需要调整该目录下的对应标签下的信息
俊才
2019/09/12
1.2K0
你真的知道如何连接mysql么
如何将Postman API测试转换为JMeter以进行扩展
许多测试工程师使用Postman进行API测试自动化。他们发现端点,发出请求,创建测试数据,运行回归测试,使用Newman等实现API测试的持续集成。但是,Postman有一定的测试限制。希望获得更多负载测试能力的开发人员,DevOps和QA工程师可以将其Postman测试转换为JMeter。这篇博客文章将解释何时建议将Postman转换为JMeter,并逐步说明如何实现。
用户8460142
2023/07/07
4890
如何将Postman API测试转换为JMeter以进行扩展
mysql日期格式转换_MySQL日期格式转换
DATE_FORMAT(date,format):根据参数对date进行格式化。1
全栈程序员站长
2022/07/02
11.7K0
mysql将yyyy转换_Mysql时间格式转换
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。
全栈程序员站长
2022/09/06
3.1K0
mysql的左右连接_MySQL之左连接与右连接
on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]
全栈程序员站长
2022/10/05
12.9K0
点击加载更多

相似问题

将oracle转换为mysql以选择listagg和左连接

11

MySQL -选择、连接

30

如何配置Tomcat以连接MySQL

24

MYSQL自连接以选择去年的销售额

31

外部连接以选择

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文