我尝试过:
CREATE TABLE temporary_bundle_wired
AS SELECT * FROM temporary_bundle,wired_items
WHERE temporary_bundle.id = wired_items.id;
我有两张现有表格:
temporary_bundle
wired_items
我想创建一个名为temporary_bundle_wired
的第三个表。
在此表中,我想从temporary_bundle WHERE temporary_bundle.id = wired_items.id
我还希望在将temporary_bundle
移至tempoary_bundle_wired
后从duplicate column name Id
删除这些记录。
我试过的查询返回:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
AuthType Basic
AuthName "test"
AuthUserFile /home/www/.htpasswd
Require valid-user
答案 0 :(得分:1)
问题是两个表都有一个名为 id 的列,而您正在选择两个用于创建新表的列。 您必须指定其中一个表的每一列,以便重命名id列:
CREATE TABLE temporary_bundle_wired
AS SELECT a.id as 'othername', user_id, base_item, ..., b.*
FROM temporary_bundle a, wired_items b
WHERE temporary_bundle.id = wired_items.id;
干杯。
答案 1 :(得分:1)
我试过的查询返回:
duplicate column name Id
上述错误明显表示您有重复的列。您正在创建的新表中的列名(id)
在两个旧表之间发生冲突'共同属性(temporary_bundle.id
和wired_items.id
)
确保两个表之间没有其他公共属性。如果存在,则在插入之前将它们从表中的任何一个别名。
如果其他人不工作,请尝试此操作。
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;
删除 - 这是一个不同的查询。
DELETE from temporary_bundle t WHERE t.id = (select id from wired_items);
答案 2 :(得分:0)
确实有一个问题是id
在两个表之间是相同的。其他列也可以,但如果id
是唯一的问题,那么使用using
子句:
CREATE TABLE temporary_bundle_wired AS
SELECT *
FROM temporary_bundle JOIN
wired_items
USING (id);