如何删除不需要的行并在SQL中创建新列?

时间:2011-11-06 16:53:19

标签: sql sql-server sql-update

我有两张桌子。

我的第一个表名为WORLD,此表有一个名为PEOPLE的列。在PEOPLE表中,我有女性和男性的名字。

我的第二个表名为MEN,此表有一个名为NAMES的列。它由男人的名字组成。

我想要做的是比较这两个表,查找女性的名字,并将它们添加到WORLD表中名为“WOMEN”的列中。

WORLD.PEOPLE MEN.NAMES

John                John
Joe                 Alan
Jessica             Michael
Martin              Martin
Alan                Adam
Eva                 Joe
Mary                

我想要的是:

WORLD.PEOPLE WORLD.WOMEN

John                Jessica
Joe                 Eva
Jessica             Mary
Martin              
Alan                
Eva                 
Mary                 

我尝试使用这句话:

  

从WORLD WHERE中选择人(人不在(从男性中选择姓名)))

但是这只会给出结果,它不会更新WORLD表。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您应该尝试创建一个新表并在其中添加值,然后删除WORLD表。  我想你只想在一个数据库上工作,但我想不出任何其他更简单的方法。使用insert,您将获得null值,因此不实用。你可以尝试我所说的。

答案 1 :(得分:1)

您必须在表格WORLD中有一些关键字段用于识别记录。 或者使用另一张桌子作为商店女性名字。

答案 2 :(得分:0)

INSERT INTO world(women) SELECT People FROM WORLD WHERE (People NOT IN(SELECT Names FROM MEN)))

或类似的东西? 另请参阅the documentation。 我不确定上述语法是否正确,因为您通过从同一个表中选择数据来将数据插入表中。也许你需要使用“AS”。