精华内容
下载资源
问答
  • mysql联表删除

    2019-12-03 14:19:56
    1、结构 user CREATE TABLE `user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `name` varchar(255) NOT NULL COMMENT '姓名', `age` int(11) NOT NULL COMMENT '年龄', `status...

    1、表结构

    user表

    CREATE TABLE `user` (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
      `name` varchar(255) NOT NULL COMMENT '姓名',
      `age` int(11) NOT NULL COMMENT '年龄',
      `status` int(11) NOT NULL DEFAULT '0' COMMENT '状态',
      `points` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '积分',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      PRIMARY KEY (`id`) USING BTREE,
      UNIQUE KEY `name` (`name`,`age`) USING BTREE
    ) ENGINE=InnoDB AUTO_INCREMENT=46823 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

    user_test表

    CREATE TABLE `user_test` (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` bigint(20) NOT NULL,
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    2、删除一个表数据

    delete ut from user u,user_test ut where u.id=ut.user_id and u.id=298;

    3、删除多个表数据

    delete u,ut from user u,user_test ut where u.id=ut.user_id and u.id=298;

     

     

     

     

    展开全文
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。MySQL联表查询:reference mysql manul:3.2.7. SELECT语法13.2.7.1. JOIN语法13.2.7.2. ...

    MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。

    MySQL联表查询:

    reference mysql manul:

    3.2.7. SELECT语法13.2.7.1. JOIN语法

    13.2.7.2. UNION语法

    eg1:·mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS

    t2·->    WHERE t1.name = t2.name;eg2:·mysql> SELECT table1.* FROM

    table1·->        LEFT JOIN table2 ON

    table1.id=table2.id·->        WHERE table2.id IS NULL;

    联表删除:

    1、从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉

    DELETE t1 FROM t1,t2 WHERE t1.id=t2.id    或DELETE  FROM t1 USING t1,t2 WHERE t1.id=t2.id

    2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

    DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 或

    DELETE  FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL

    3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉

    DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

    注意此处的delete t1,t2 from 中的t1,t2不能是别名

    如:delete t1,t2 from table_name as t1 left join table2_name as t2 on

    t1.id=t2.id where table_name.id=25 在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)

    上述语句改写成

    delete table_name,table2_name from table_name as t1 left join

    table2_name as t2 on t1.id=t2.id where table_name.id=25

    在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)

    展开全文
  • 假设有两个,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称结果出现错误,提示为:列...

    假设有两个表,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称

    结果出现错误,提示为:列前缀 'tab2' 与查询中所用的表名或别名不匹配。请问应该怎样写,

    SQL语句是不支持多表同时更新的。

    应该这样写

    update tab1 set tab1.产品价格 = (select tab2.产品价格 from tab2 where tab2.产品名称 = tab1.产品名称) where tabl1.产品名称 in (select tab2.产品名称 from tab2)

    后面的where tab1.产品名称 in (select tab2.产品名称 from tab2) 这句保证了如果tab1的产品在tab2没有记录时不会出错。

    在 开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.

    在本例中:

    我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

    SQL Server语法:

    UPDATE

    {

    table_name WITH ( < table_hint_limited > [ ...n ] )

    | view_name

    | rowset_function_limited

    }

    SET

    { column_name = { expression | DEFAULT | NULL }

    | @variable = expression

    | @variable = column = expression } [ ,...n ]

    { { [ FROM { < table_source > } [ ,...n ] ]

    [ WHERE

    < search_condition > ] }

    |

    [ WHERE CURRENT OF

    { { [ GLOBAL ] cursor_name } | cursor_variable_name }

    ] }

    [ OPTION ( < query_hint > [ ,...n ] ) ]

    SQL Server示例:

    update a

    set a.gqdltks=b.gqdltks,a.bztks=b.bztks

    from landleveldata a,gdqlpj b

    where a.GEO_Code=b.lxqdm

    Oracle语法:

    UPDATE    updatedtable

    SET (col_name1[,col_name2...])=

    (SELECT    col_name1,[,col_name2...]

    FROM    srctable [WHERE where_definition])

    Oracel 示例:

    update landleveldata a

    set (a.gqdltks, a.bztks)=

    (select b.gqdltks, b.bztks    from gdqlpj b

    where a.GEO_Code=b.lxqdm)

    MySQL语法:

    UPDATE table_references

    SET col_name1=expr1 [, col_name2=expr2 ...]

    [WHERE where_definition]

    MySQL 示例:

    update landleveldata a, gdqlpj b

    set a.gqdltks= b.gqdltks,

    a.bztks= b.bztks

    where a.GEO_Code=b.lxqdm

    展开全文
  • 假设有两个,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称结果出现错误,提示为:列...

    假设有两个表,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称

    结果出现错误,提示为:列前缀 'tab2' 与查询中所用的表名或别名不匹配。请问应该怎样写,

    SQL语句是不支持多表同时更新的。

    应该这样写

    update tab1 set tab1.产品价格 = (select tab2.产品价格 from tab2 where tab2.产品名称 = tab1.产品名称) where tabl1.产品名称 in (select tab2.产品名称 from tab2)

    后面的where tab1.产品名称 in (select tab2.产品名称 from tab2) 这句保证了如果tab1的产品在tab2没有记录时不会出错。

    在 开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.

    在本例中:

    我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

    SQL Server语法:

    UPDATE

    {

    table_name WITH ( < table_hint_limited > [ ...n ] )

    | view_name

    | rowset_function_limited

    }

    SET

    { column_name = { expression | DEFAULT | NULL }

    | @variable = expression

    | @variable = column = expression } [ ,...n ]

    { { [ FROM { < table_source > } [ ,...n ] ]

    [ WHERE

    < search_condition > ] }

    |

    [ WHERE CURRENT OF

    { { [ GLOBAL ] cursor_name } | cursor_variable_name }

    ] }

    [ OPTION ( < query_hint > [ ,...n ] ) ]

    SQL Server示例:

    update a

    set a.gqdltks=b.gqdltks,a.bztks=b.bztks

    from landleveldata a,gdqlpj b

    where a.GEO_Code=b.lxqdm

    Oracle语法:

    UPDATE updatedtable

    SET (col_name1[,col_name2...])=

    (SELECT col_name1,[,col_name2...]

    FROM srctable [WHERE where_definition])

    Oracel 示例:

    update landleveldata a

    set (a.gqdltks, a.bztks)=

    (select b.gqdltks, b.bztks from gdqlpj b

    where a.GEO_Code=b.lxqdm)

    MySQL语法:

    UPDATE table_references

    SET col_name1=expr1 [, col_name2=expr2 ...]

    [WHERE where_definition]

    MySQL 示例:

    update landleveldata a, gdqlpj b

    set a.gqdltks= b.gqdltks,

    a.bztks= b.bztks

    where a.GEO_Code=b.lxqdm

    展开全文
  • MySQL联表删除的方法

    千次阅读 2019-08-15 16:58:07
    1、从数据t1 中把那些id值在数据t2 里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2、从数据t1里在数据t2里没有匹配的记录查找出来...
  • Mysql联表删除语句

    2017-05-04 15:37:00
    DELETE a FROM table1 a, table2 b WHERE ...DELETE后面FROM前面 要跟删除目标的别名。没有别名,要跟表名。 转载于:https://my.oschina.net/tanwen/blog/892310
  • MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。如果一个 ORDER BY 子句被...从 MySQL 4.0.4 开始,你也可以执行一个包含多个的 UPDATE or DELETE 的操作:UPDATE t1,t2SET t1.price =...
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。MySQL联表查询:reference mysql manul:3.2.7. SELECT语法13.2.7.1. JOIN语法13.2.7.2. ...
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。MySQL联表查询:reference mysql manul:3.2.7. SELECT语法13.2.7.1. JOIN语法13.2.7.2. ...
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。MySQL联表查询:reference mysql manul:3.2.7. SELECT语法13.2.7.1. JOIN语法13.2.7.2. ...
  • #sql语句数据行操作补充#增加:#insert into table_name(字段1,字段2) values('属性1','属性2'),('属性1','属性2') 插入... (某张表的某几列数据选择出来,插入)#删除:delete from table_name [where id =/!=/&...
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。MySQL联表查询:reference mysql manul:3.2.7. SELECT语法13.2.7.1. JOIN语法13.2.7.2. ...
  • MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。 MySQL联表查询: reference mysql manul: 3.2.7. SELECT语法13.2.7.1. JOIN语法 13.2...
  • mysql联表删除

    2017-03-07 11:15:00
    联表删除: 1、从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2、从数据表t1里在数据表t2里没有匹配的...
  • 工作常用的MySQL语句 Bases INSERT INTO SELECT(将查找的结果插入目标表) INSERT ON DUPLICATE KEY UPDATE statement(插入更新数据) UPDATE JOIN syntax(联表更新数据) DELETE JOIN with JOIN(联表删除数据) ...
  • 联表查询1、内连接--等值连接自然连接,两个表相匹配的行才在结果集中出现Select 内容 from 表1 inner join 表2 on 等值条件Select * from student inner join grade on grade.stuid = student.stuid;2、外连接左...
  • 查询 条件删除(这样写自己玩玩可以,这样写真是多此一举) 注意单查询删除 如果是这样写 (DELETE FROM dim_people_copy where id=(select id from dim_people_copy where id=11038) ) 是报错的 正确的...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 209
精华内容 83
关键字:

mysql联表删除

mysql 订阅