首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Table3创建为SELECT,其中id从table1 = id来自table2

将Table3创建为SELECT,其中id从table1 = id来自table2
EN

Stack Overflow用户
提问于 2017-09-04 18:21:55
回答 2查看 63关注 0票数 0

我试过的是:

代码语言:javascript
复制
CREATE TABLE temporary_bundle_wired 
 AS SELECT * FROM temporary_bundle,wired_items 
 WHERE temporary_bundle.id = wired_items.id;

我有两张桌子:

  1. temporary_bundle
  2. wired_items

我想创建第三个表,名为temporary_bundle_wired。在这个表中,我想插入temporary_bundle WHERE temporary_bundle.id = wired_items.id中的所有行(及其列和字段)

一旦我将这些记录移到tempoary_bundle_wired中,我还想将它们从tempoary_bundle_wired中删除。

我尝试过的查询返回:

duplicate column name Id

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-04 19:39:16

我尝试过的查询返回:duplicate column name Id

以上错误明目张胆地表示您有重复的列。正在创建的新表中的列名(id)在两个旧表的公共属性(temporary_bundle.idwired_items.id)之间发生冲突。

确保两个表之间没有其他公共属性。如果存在,则在插入之前从任何一个表中将它们化名。

如果其他人不起作用,就试试这个。

代码语言:javascript
复制
CREATE TABLE temporary_bundle_wired 
AS 
SELECT 
 t.id as id, user_id, base_item, extra_data, x, y, z, rot, wall_pos, limited_number, limited_stack, sandbox  -- and all other attributes you want
FROM temporary_bundle t, wired_items w
WHERE t.id = w.id;

删除-这是一个不同的查询在一起。

代码语言:javascript
复制
DELETE from temporary_bundle t WHERE t.id = (select id from wired_items);
票数 1
EN

Stack Overflow用户

发布于 2017-09-04 19:24:17

一个问题确实是,两个表之间的id是相同的。其他列也可能是这样,但是如果id是唯一的问题,那么使用using子句:

代码语言:javascript
复制
CREATE TABLE temporary_bundle_wired AS
    SELECT *
    FROM temporary_bundle JOIN
         wired_items 
         USING (id);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46042375

复制
相关文章

相似问题

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