2017-09-04 5 views
0

からのid = IDテーブル1から表3 AS SELECTを作成します。私が試してみました何table2の

CREATE TABLE temporary_bundle_wired 
AS SELECT * FROM temporary_bundle,wired_items 
WHERE temporary_bundle.id = wired_items.id; 

を私は2つのexisitingのテーブルを持っている:

  1. temporary_bundle
  2. wired_items

私はtemporary_bundle_wiredと呼ばれる3番目のテーブルを作成したいと思います。 は、この表では、私はまた、私はtempoary_bundle_wiredにそれらを移動した後temporary_bundleからそれらのレコードを削除したいtemporary_bundle WHERE temporary_bundle.id = wired_items.id

からすべての行(およびその列とフィールド)を挿入します。

クエリ私が試してみましたリターン:

duplicate column name Id

答えて

1

を: duplicate column name Id

上記のエラーが露骨にあることを示し、列が重複しています。あなたが作成している新しいテーブルの列名(id) 2つのテーブル間には、他の一般的な属性が存在しないことを確認してください

2つの古いテーブル共通の属性( temporary_bundle.idwired_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; 

DELETING - これはまったく異なるクエリです。

DELETE from temporary_bundle t WHERE t.id = (select id from wired_items); 
1

問題は、両方のテーブルにidという名前の列を持っているということです、そして、あなたは新しいテーブルを作成するための2を選択しています。

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; 

乾杯: あなたはid列の名前を変更することができるように、テーブルの1の各列を指定する必要があります。

+0

http://prntscr.com/gh1vfo。だから、クエリの列の各1つ私は行うだろう... SELECT a.idとして 'temporary_bundle.id'、 'user_id'、 'room_id'など? – buuencrypted

+0

はい。それは正しいです – sdsc81

+0

CREATE TABLE temporary_bundle_wired 'id'、 'user_id'、 'base_item'、 'extra_data'、 'x'、 'y'、 'z'、 'rot'、 'wall_pos'、 ' 「limited_number」、「limited_number」、「limited_stack」、「sandbox」FROM temporary_bundle a、wired_items b WHERE a.id = b.id; ...これは、temporary_bundleからの行を挿入しませんでした(temporary_bundle.id = wired_items.id)。それはすべてこのhttp://prntscr.com/gh254qでした。私はまた、temporary_bundleから対応するフィールドを埋める必要があります。 – buuencrypted

0

実際には、2つのテーブル間でidが同じであるという問題が1つあります。他の列も同様になりますが、idが唯一の問題であるならば、using句使用することができます:私は戻りを試してみましたクエリ

CREATE TABLE temporary_bundle_wired AS 
    SELECT * 
    FROM temporary_bundle JOIN 
     wired_items 
     USING (id); 
関連する問題