mysql数据库实现关联表更新sql语句

比如有两张表,其中一张表某个字段的值要关联另一张表进行统计,就要用到mysql的update方法,并且left join另一张表进行联合查询。

表1

表2

需求是:统计表1中id,也就是表2中的tagid出现的次数,更新到表1的videonum字段中。这时候需要关联两张表更新表1并且进行统计.

mysql关联表更新统计

sql语句如下:

 代码如下 复制代码

UPDATE v9_keyword as a LEFT JOIN v9_keyword_data as b
on a.id=b.tagid
set a.videonum=(SELECT COUNT(tagid) from v9_keyword_data where tagid=a.id)
WHERE a.id=b.tagid;

注意update,left join,on,set,where的顺序和写法,另外这里统计a.videonum用到select子查询,为什么要这样用,请看这篇文章:mysql执行count错误。

本文有两个重点:

1.mysql update关联表更新的sql语句写法

2.关联表统计某字段COUNT的正确用法

时间: 2024-11-16 11:00:41

mysql数据库实现关联表更新sql语句的相关文章

在MySQL数据库中使用C执行SQL语句

mysql|数据|数据库|语句|执行 与PostgreSQL相似,可使用许多不同的语言来访问MySQL,包括C.C++.Java和Perl.从Professional Linux Programming中第5章有关MySQL的下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句.他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据

在MySQL数据库中使用C执行SQL语句(1)

与PostgreSQL相似,可使用许多不同的语言来访问MySQL,包括C.C++.Java和Perl.从Professional Linux Programming中第5章有关MySQL的下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句.他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据的简单程序. 执行SQL语句 现在,我

在MySQL数据库中使用C执行SQL语句的方法_Mysql

他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据的简单程序 执行SQL语句 现在,我们已经有了一个连接,并且知道如何处理错误,是时候讨论使用我们的数据库来作一些实际工作了.执行所有类型的SQL的主关键字是mysql_query: int mysql_query(MYSQL *connection, const char *query) 正如您所见,它非常简单.它取一个指向连接结构的指针和包含要执行的SQL的文本字符串

在MySQL数据库中使用C执行SQL语句(2)

返回数据的语句 现在是时候讨论SQL的最普遍用法了,从数据库检索数据的SELECT语句. MySQL 还支持返回结果的SHOW.DESCRIBE和EXPLAIN SQL语句,但是这里不考虑它们.按惯例,手册中包含这些语句的说明. 您将会从PostgreSQL章记起,可以从PQexec中的SQL SELECT 语句检索数据,这里马上获取所有数据,或者使用游标从数据库中逐行检索数据,以便搞定大数据. 由于完全相同的原因,MySQL的检索方法几乎完全相同,虽然它实际上不用游标的形式描述逐行检索.但是,

MySql多表关联Update更新sql语句

对单表执行更新没有什么好说的,无非就是update table_name set col1 = xx,col2 = yy where col = zz,主要就是where条件的设置.有时候更新某个表可能会涉及到多张数据表,例如:  代码如下 复制代码 update table_1 set score = score + 5 where uid in (select uid from table_2 where sid = 10); 其实update也可以用到left join.inner joi

SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句_MsSql

1.查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2.查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN d

SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句

1.查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2.查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN d

在MySQL数据库中使用C执行SQL语句(3)

检索数据 现在开始编写从数据库中检索数据的第一个程序.我们将选择所有年龄大于5的行的内容.不幸的是我们还不知道如何处理这个数据,所以我们能做的只有循环检索它.这便是 select1.c: #include             #include             #include "mysql.h"            MYSQL my_connection;            MYSQL_RES *res_ptr;            MYSQL_ROW sqlrow

PHP通过SQL语句将数据写入MySQL数据库指定的表

PHP向MySQL数据库中写入数据有三个步骤: 1,PHP和MySQL建立连接关系 2,打开MySQL数据库 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?php mysql_connect("localhost","root","");//连接MySQL mysql_select_db("hello");//选择数据库 ?> 当然,前提是已经安装WEB