1. 需求:两张表FangAn和FangAnDetail,一对多的关系,根据条件更新FangAnDetail的两个字段。
2.表结构:
FangAn表
+----------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key| Default | Extra |
+----------------+-------------+------+-----+---------------------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| lot | varchar(30) | NO | | | |
| playType | int(10) | NO | | 0 | |
| money | int(10) | NO | | 0 | |
| addDate | timestamp | NO | | CURRENT_TIMESTAMP | |
| lastUpdateDate | timestamp | NO | | 0000-00-00 00:00:00 | |
| status | int(2) | NO | | 0 | |
| catId | bigint(20) | NO | MUL | | |
| expertId | bigint(20) | NO | MUL | | |
| startQihaoId | bigint(20) | NO | MUL | | |
| endQihaoId | bigint(20) | NO | MUL | | |
+----------------+-------------+------+-----+---------------------+----------------+
FangAnDetail表
+----------------+------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------------------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| multi | int(2) | NO | | 0 | |
| touMoney | int(10) | YES | | NULL | |
| leiMoney | int(10) | YES | | NULL | |
| zhuanMoney | int(10) | YES | | NULL | |
| addDate | timestamp | NO | | CURRENT_TIMESTAMP | |
| lastUpdateDate | timestamp | NO | | 0000-00-00 00:00:00 | |
| status | int(2) | NO | | 0 | |
| qihaoId | bigint(20) | NO | MUL | | |
| fanganId | bigint(20) | NO | MUL | | |
+----------------+------------+------+-----+---------------------+----------------+
UPDATE expertfangandetail detail1 SET detail1.leiMoney=600, detail1.zhuanMoney=400 WHERE detail1.id IN
(SELECT a.id FROM(SELECT detail2.id FROM expertfangandetail detail2, expertfangan fangan WHERE detail2.fanganid=fangan.id
AND fangan.playtype=301 AND detail2.toumoney=600) a);
分享到:
相关推荐
在本篇文章中,我们将深入探讨MySQL子查询的用法,包括单行子查询、多行子查询、关联子查询以及它们在实际应用中的示例。 1. 单行子查询 单行子查询返回单个值,常用于WHERE子句中与外部查询的字段进行比较。例如,...
MySQL中的表子查询和关联子查询是SQL查询中两种重要的技术,它们在处理复杂的数据查询时发挥着关键作用。本文将深入探讨这两种子查询的概念、用法和优化策略。 首先,我们来看表子查询。表子查询指的是在一个查询中...
在MySQL中,子查询可以分为单行子查询、多行子查询和关联子查询。单行子查询返回单个值,多行子查询返回一组值,而关联子查询则涉及到与外部查询的行进行比较。 1. **单行子查询**: 单行子查询返回一个单一的、...
### MySQL 子查询与连表查询的效率比较及优化 #### 一、子查询与连表查询概述 在SQL查询语言中,子查询与连表查询是两种非常重要的查询技术,广泛应用于各种复杂的业务场景中。为了更好地理解这两种查询方式的特点...
在这个例子中,外部查询`members`表的每个`用户号`都会与子查询中的`sell`表的`用户号`进行比较,只有当子查询在`sell`表中找到匹配的销售记录时,外部查询的当前行才会被选取。 相关子查询的应用场景广泛,例如在...
本文将深入探讨MySQL关联子查询的优化方法,通过实例来展示如何改进查询效率。 关联子查询,也称为嵌套查询,是将一个查询的结果作为另一个查询的条件。在MySQL中,如果子查询依赖于外部查询的值(即每个外部行都...
为了解决这个问题,我们可以使用子查询来获取特定字段的信息,而不是直接在主查询中进行多表关联。在示例中,子查询用于获取总打赏分数(`total_score`)和不同时间段的消费分数(`score`)。 子查询的语法如下: ...
yiibaidb.sql文件可能包含的示例将涵盖这些情况和其他复杂用法,比如嵌套子查询、使用IN和NOT IN操作符、比较子查询以及关联子查询等。通过实践这些示例,你可以深入理解如何在实际环境中有效地使用MySQL子查询来...
子查询是 SQL 查询中非常强大的功能之一,能够帮助我们处理复杂的数据检索任务。通过合理的设计和优化,可以极大地提高数据库操作的效率。掌握子查询的使用方法,对任何数据库开发人员来说都是非常重要的。
本文将详细介绍MySQL中的多条件查询技术,包括子查询、多表查询等重要知识点,旨在帮助读者更好地理解和掌握这些实用技巧。 #### 二、子查询概述 子查询是在一个SQL查询内部嵌套另一个SQL查询的情况。它是一种非常...
为了解决这个问题,我们可以将子查询改写为关联查询,如下所示: ```sql SELECT t2.i_id, SUM(t2.i_sell) AS sold FROM (SELECT DISTINCT i_id FROM table_data WHERE gmt_create >= '2011-10-07 00:00:00') t1, ...
MySQL中的子查询是一种强大的工具,它允许在一个查询中嵌套另一个查询,以实现更复杂的查询逻辑。子查询可以在SELECT、FROM、WHERE等子句中使用,以满足特定的数据过滤和处理需求。 1. 子查询的基本用法 子查询的...
在这个例子中,首先对主表`youpin_order`进行子查询,并在其中处理分页条件。注意,这里的LIMIT和OFFSET需要根据传入的参数计算(offset - 1)* limit,以实现正确的分页效果。然后,通过LEFT JOIN将关联表的数据...
本文实例讲述了mysql连接查询、联合查询、子查询原理与用法。分享给大家供大家参考,具体如下: 本文内容: 连接查询 联合查询 子查询 from子查询 where子查询 exists子查询 首发日期:2018-04-11 连接查询...
在MySQL数据库中,嵌套子查询是一种强大的查询技术,它允许在一个查询中嵌入另一个查询,以实现更复杂的检索逻辑。本节主要介绍了如何利用嵌套子查询来处理数据查询,包括使用比较运算符和IN操作符实现不同类型的...
2. **利用索引**:确保子查询中的关键列有合适的索引,可以显著提升查询速度。 3. **使用JOIN替代子查询**:某些情况下,JOIN操作可能比子查询更有效率,尤其是在涉及多表关联时。 4. **减少子查询嵌套层次**:...
首先,我们要明白在`UPDATE`语句中直接使用子查询可能引发的问题。例如,当我们尝试像这样更新数据: ```sql UPDATE test.tb_vobile a SET a.name = '111 ' WHERE a.id = (SELECT MAX(id) id FROM test.tb_vobile);...