首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询的正确语法是什么

Mysql查询的正确语法是什么
EN

Stack Overflow用户
提问于 2015-03-07 15:01:37
回答 3查看 72关注 0票数 1

这里有两个表格-

代码语言:javascript
复制
table1 wp_posts-

ID      post_type
1078    soto_user
1079    soto_user
1080    soto_user


table2 usuario

ID     post_type
0       soto_user
0       soto_user
0       soto_user

我想要table2作为-

代码语言:javascript
复制
   ID       post_type
  1078       soto_user
  1079       soto_user
  1080       soto_user

我尝试过这种语法,但没有效果-

代码语言:javascript
复制
UPDATE usuario
LEFT JOIN wp_posts
ON usuario.post_type=wp_posts.post_type
SET usuario.ID = wp_posts.ID

上述查询的正确语法是什么?此处table2中的ID列既不是主键,也不是自动递增字段。

EN

回答 3

Stack Overflow用户

发布于 2015-03-07 15:20:33

在这里,post_type不是用于连接的唯一列。如果进行连接,table1的每一行都将连接到table2的3行,这会导致行膨胀。

如果您正在查找与table1相同的表,则可以使用以下方法:

代码语言:javascript
复制
create table table2
select * from table1;
票数 0
EN

Stack Overflow用户

发布于 2015-03-07 15:45:03

使用以下查询。如果您没有使用安全模式来更新(在没有where的情况下更新使用键列的表),则此查询将在下工作

要禁用安全模式,请切换首选项--> SQL编辑器-->查询编辑器中的选项,然后重新连接

代码语言:javascript
复制
UPDATE usuario u
       JOIN wp_posts w
       ON u.post_type=w.post_type
SET u.id = w.id;

代码语言:javascript
复制
UPDATE usuario u
       JOIN wp_posts w
       ON u.post_type=w.post_type
SET u.id = w.id;
where u.id = 0
票数 0
EN

Stack Overflow用户

发布于 2015-03-07 15:19:14

我认为你应该使用游标来更新所有的记录。

代码语言:javascript
复制
DECLARE ID INT,
DECLARE POSTTYPE VARCHAR
DECLARE CURSOR crs_wp_posts FOR SELECT ID,POSTTYPE
OPEN crs_wp_posts
FETCH crs_wp_posts INTO ID, POSTTYPE
UPDATE usuario SET usuario.Id = ID WHERE usuario.Id = (SELECT TOP 1 Id FROM usuario WHERE usuario.Id = 0)
CLOSE crs_wp_posts
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28912339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档