2016-10-13 11 views
1

異なるテーブルから新しいテーブルを作成するときに、元のデータフォーマットをタブレットのカラムから維持するにはどうすればよいですか?私は2つのテーブルを取得し、それぞれからいくつかの列に基づいて新しいものを作成したい:しかし、次の([]で)実行すると、table1の1つの列(日付)の日付形式は自動的に(varcharへ)元のデータ形式):新しいテーブルを作成中にソースデータフォーマットを維持する

CREATE TABLE 3 AS 
SELECT 
y1.ItemID[int], 
y1.order[int], 
y1.name[varchar], 
y1.date[date], 
y2.product_id[int], 
y2.name[varchar], 
y2.Kategorie [number], 
FROM Table1 y1 
LEFT JOIN Table2 y2 
ON y1.ItemID = y2.product_id; 

何が問題なのですか。

+0

これは、データを保持する必要がありますタイプ。一方、同じ名前の 'name'を持つ2つのカラムがあるので、あなたのコードはすでに動作しませんので、もし' 3'を除いて実際にあなたのコードであるか、あまりに単純化していれば再度チェックしてください。また、 'y1.date'が実際に' date'タイプ( 'show create table y1')であれば、ダブルチェックしてください。何も動作しない場合は、 'create table table3(types with columns)as ... 'というコードでデータ型を明示的に設定することができます。 – Solarflare

答えて

0

あなたが明示的にキャストできるはず:

CREATE TABLE 3 AS 
SELECT 
y1.ItemID, 
y1.order, 
y1.name, 
Cast(y1.date as date) date, 
y2.product_id, 
y2.name, 
y2.Kategorie 
FROM Table1 y1 
LEFT JOIN Table2 y2 
ON y1.ItemID = y2.product_id; 

をとMySQLに示すように、あなたはまた、オンライン、マニュアルの例を作成する上でのデータタイプを設定することができます。

CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar; 
関連する問題