首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL充分利用连接

MySQL充分利用连接
EN

Stack Overflow用户
提问于 2014-01-19 14:48:02
回答 1查看 52关注 0票数 0

好吧,也许我想做的事情是不可能的,但这是有道理的。

我有三张桌子:userscommentscomments_ratings。在comments_ratings cr中,我保存注释的id、用户的id和他们给出的投票,对于他们投票的每一个评论。我现在要做的是弄清楚用户是否对查询返回的每个评论进行了投票。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    c.*,
    u.name as authorName,
    SUM(cr.vote) AS rating

FROM comments c 
    LEFT JOIN users u ON u.id = c.author 
    LEFT JOIN comments_ratings cr ON c.id = cr.comment

WHERE c.id <= ? 
GROUP BY c.id 
ORDER BY c.id DESC
LIMIT ?,?

因此,这会将每个注释作为一个单独的行返回(难以置信),但是与其向cr添加另一个join以确定当前用户是否已经对每个注释进行了投票,我还能以某种方式使用我已经拥有的一个-- SUM-ing --投票吗?

换句话说,我是否可以得到一个额外的列来保存用户x是否对这个特定的注释(行)进行投票,而不添加第三个联接?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-19 15:05:38

是也不是。我更愿意使用comments_ratings on c.id AND u.id = user in question进行另一次连接,但是可以使用php或显示结果所用的任何其他语言提取所需的简单检查。使用GROUP_CONCAT获取对注释进行表决的所有it的字符串,然后将其explodearray以供参考。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    c.*,
    u.name as authorName,
    SUM(cr.vote) AS rating,
    GROUP_CONCAT(cr.user_id) AS user_ids

FROM comments c 
    LEFT JOIN users u ON u.id = c.author 
    LEFT JOIN comments_ratings cr ON c.id = cr.comment 
WHERE c.id <= ? 
GROUP BY c.id 
ORDER BY c.id DESC
LIMIT ?,?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21223698

复制
相关文章
mysql的左右连接_MySQL之左连接与右连接
on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]
全栈程序员站长
2022/10/05
12.8K0
mysql左连接和右连接_MYSQL 左连接与右连接
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
全栈程序员站长
2022/09/05
16K0
mysql左连接和右连接_MYSQL 左连接与右连接
MySQL 连接
您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。
用户1685462
2021/07/16
10.3K0
连接 MySQL
命令选项 -A(–no-auto-rehash)的作用是禁止数据库名、表名和字段名自动补全。如果数据库数据表很多,当我们打开数据库时,比如使用 use 切换数据库时,需要对数据表进行预处理以满足自动补全的功能,将会很耗时。使用 -A 可禁止该操作。
恋喵大鲤鱼
2023/10/12
2190
MySQL 连接
您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。
用户6884826
2021/07/07
9.3K0
MySQL 连接
您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。
用户1168904
2021/08/03
9.3K0
MySQL 连接
给予一颗二叉搜索树, 返回区间 L - R 之间的所有值的总和. 二叉搜索树中没有重复值.
一份执着✘
2019/12/30
7.8K0
MySQL 连接
使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# mysql -u root -p Enter password:****** 在登录成功后会出现 mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。 以上命令执行后,登录成功输出结果如下: Welcome to the MySQL monitor. Commands end with ; or
福贵
2018/04/12
9.1K0
MySQL 连接
MySQL 连接
使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# mysql -u root -pEnter password:****** 在登录成功后会出现 mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。 以上命令执行后,登录成功输出结果如下: Welcome to the MySQL monitor. Commands end with ; or \g
福贵
2018/04/12
8.4K0
MySQL 连接
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连接查询(左连接,右连接,内连接)
以上就是MySQL 连接查询的资料整理,大家如有疑问可以留言讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
叫我可儿呀
2019/11/30
11.8K0
mysql连接查询(左连接,右连接,内连接)
MySQL(连接查询)
自连接一般用于一张表中有上下级关系的表,一般会有一个指向上级的字段,用法和等值连接一致,我们将同一张表起不同的别名进行等值连接。
全栈开发日记
2022/05/12
7.5K0
MySQL(连接查询)
NodeExpress连接MySql
node连接数据库进行增删改查,安装npm包mysql2(npm install mysql2)
用户6256742
2022/07/06
5.4K0
codesmith连接Mysql
下载了codesmith 8,连接Mysql却提示“找不到请求的 .Net Framework Data Provider"。
FlyLolo
2019/03/11
3.4K0
VC连接MySql
  MYSQL * stdcall mysql init (MYSQL *mysql): 初始化一个数据库.如果传NULL.则返回一个数据库对象
IBinary
2019/05/25
4.7K0
Python 连接MySQL
数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储,Hadoop中的Hive组件和数据库在语法上高度相似。
MeteoAI
2019/07/22
5.6K0
MySQL连接查询
inner join语法是ANSI SQL的标准规范,使用inner join连接语法能够确保不会忘记连接条件
全栈程序员站长
2022/08/12
5.7K0
MySQL连接查询
Mysql 外连接和内连接
假设A和B表进行连接,使用内连接的话。凡是A表和B表能够匹配上的记录查询出来,这就是内连接。 AB两张表没有主副之分,两张表是平等的。 语法
吃猫的鱼Code
2023/02/02
1.8K0
mysql 左连接 自连接 例子
逻辑:先通过左连接将看了湖南卫视和北京卫视的查出来,然后再将看了湖南卫视但不在刚才查出的结果中的用户查出来。
全栈程序员站长
2022/09/03
3.1K0
mysql 左连接 自连接 例子
Navicat 连接 MySQL
Navicat 是一套快速、可靠和全面的数据库管理工具,专门用于简化数据库管理和降低管理成本。Navicat 图形界面直观,提供简便的管理方法,设计和操作 MySQL、MariaDB、SQL Server、Oracle、PostgreSQL 和 SQLite 的数据。
愷龍
2022/09/26
3.1K0
Navicat 连接 MySQL

相似问题

如何充分利用mysql中的索引?

20

MySQL没有充分利用服务器

14

如何创建充分利用连接池的可伸缩SQL连接?

12

mysql没有充分利用我的cpu和内存吗?

21

如何充分利用资源

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文