2016-04-13 15 views
0

良い日々 - 私はSQLの初心者で、この問題の潜在的な解決策を見直しました。 Insert Intoコマンドを使用する最初の方法は動作しません。これは二重の行とNULLSを作成します。SQL - あるテーブルのあるカラムから別のテーブルの別のカラムにデータを移動できません

ここでは、Update-Join構文を使用して、ここに投稿したソリューションを読んでお試しください。それを正しく得るために見ることができません、多分私は、どこかの条件を必要としません。

ここに2つのテーブルがあります。 、誰かが助けることができる場合、私はとても感謝される

IPTEST TABLE 
+---------------+ 
| IP   | 
+---------------+ 
| 65.4.166.241 | 
| 65.49.188.24 | 
| 65.12.231.173 | 
| 65.30.224.18 | 
| 65.83.140.96 | 
+---------------+ 

POSTALTEST TABLE 
+-------+------+-----------+------+ 
| zip | zip4 | ailmentID | IP | 
+-------+------+-----------+------+ 
| 15227 | 3709 |  26 | NULL | 
| 15227 | 3724 |  29 | NULL | 
| 15227 | 3736 |  22 | NULL | 
| 15227 | 3737 |  22 | NULL | 
| 15227 | 3737 |  26 | NULL | 
+-------+------+-----------+------+ 

まだ「学ぶ程度の参加」のリンクに行ってきました:私は、IPTESTテーブルからIP列をデータを取得し、POSTALTESTテーブルに挿入し、IP列にしたいですSQL Serverを使用している場合は、

ジェイソン

+1

この質問にクエリを追加すると、クエリ内の何かが間違っていて望ましくない動作が発生した場合に役立ちます。 – Searay330

+0

残念ながらテーブルはきちんと貼り付けられませんでした。 – user3244822

+3

2つのテーブルの間には関係がありません。どのIPが最もポストヒストリーなレコードになるのか、どのように知っていますか? –

答えて

0

をD

種類よろしく:誰かがそれを掲示するの私に屈辱を惜しまと構文で私を助けてください

私はあなたが最初のテーブルの主キーになりますと、先ほどたい方法を知っている場合は

第一及び第二のテーブル間の
 IPTEST TABLE 
    +---------------++---------------+ 
    | IP_ID  |  IP  | 
    +---------------++---------------+ 
    | 1    || 65.4.166.241 | 
    | 2    || 65.49.188.24 | 
    | 3    || 65.12.231.173 | 
    | 4    || 65.30.224.18 | 
    | 5    || 65.83.140.96 | 
    +---------------++---------------+ 

-- add primary key 

ALTER TABLE IPTEST ADD PRIMARY KEY (IP_ID) 

    POSTALTEST TABLE 
    +-------+------+-----------+------+ 
    | zip | zip4 | ailmentID | IP | 
    +-------+------+-----------+------+ 
    | 15227 | 3709 |  26 | 1 | 
    | 15227 | 3724 |  29 | 2 | 
    | 15227 | 3736 |  22 | 3 | 
    | 15227 | 3737 |  22 | 4 | 
    | 15227 | 3737 |  26 | 5 | 
    +-------+------+-----------+------+ 

-- add FOREIGN CONSTRAINT to create relationship 

    ALTER TABLE POSTALTEST 
    ADD CONSTRAINT FK_X FOREIGN KEY (IP) 
    REFERENCES IPTEST (IP_ID); 

-- inner join 
SELECT ip_1.*,pt.* 
FROM IPTEST as ip_1 
INNER JOIN POSTALTEST as pt on ip_1 = pt.IP 

との間の関係を作成するために、FOREIGN制約を追加するために、1つの以上の列を作成することをお勧め

あなたが使用できるよりも挿入の選択を使用する:

+0

Dejanが投稿してくれてありがとうございます。最初にプライマリキーを追加するためにIPTESTテーブルを変更しようとすると、このエラーが発生しました: – user3244822

+0

mysql> ALTER TABLE iptest ADD PRIMARY KEY(IP_ID); ERROR 1072(42000):キー列 'IP_ID'がテーブル – user3244822

+0

に存在しません@ user3244822最初にIP_ID列を作成する必要があります – Dejan

関連する問題