SQL - 无法将数据从一个表中的一列移动到另一个表中的另一列

时间:2016-04-13 21:51:11

标签: mysql

美好的一天 - 我是SQL的新手,并在这里审查了潜在的解决方案。第一种使用Insert Into命令的方法不起作用。它创建了双行和NULLS。

我已阅读并尝试使用Update-Join语法在此处发布的解决方案。无法做到正确,也许我不需要WHERE条件,也许我不需要等等。

这是两张桌子。我想从IPTEST表,IP列中获取数据并将其插入POSTALTEST表,IP列:

 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 |
+-------+------+-----------+------+

如果有人可以提供帮助,我将非常感激,去了解"了解加入"已经如此请有人免除我发布的羞辱并帮助我解释语法:D

亲切的问候,

杰森

1 个答案:

答案 0 :(得分:0)

如果您使用的是SQL SERVER:

我建议您再创建一个列,它将成为第一个表中的主键,并添加FOREIGN CONSTRAINT以创建第一个表和第二个表之间的关系

     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

如果你只是想知道如何使用插入选择而不是你可以使用:

  INSERT INTO POSTALTEST (IP)
  SELECT IP
  FROM IPTEST