我应该如何在MySQL中编写查询以获取从一个表到另一个表的值

时间:2015-09-02 08:30:27

标签: mysql sql database

我希望一些字段数据从一个表(称为配置文件)插入另一个表(服务)以及表中的那些字段数据(值要插入的数据,即服务)。但是我失败了。我是MySQL和数据库查询的新手,我需要你的帮助。

  $qur = mysql_query("INSERT INTO services(FirstName,LastName,DOB,Mobile,email,CountryCode,Address,State,City,Country,PinCode,altmobnumber,PanCard,AdharCard,ServiceOffering,Fee,FeeDuration,FeeExtraHour,negotiable) select profile.FirstName,profile.LastName,profile.DOB,profile.Mobile,profile.email,profile.CountryCode,profile.Address,profile.State,profile.City,profile.Country,profile.PinCode from profile where id = '$id'")or die(mysql_error());

1 个答案:

答案 0 :(得分:1)

您需要为VALUES列表中的每一列指定值。如果您没有SELECT语句中的任何值,请为相应字段使用NULL值,或者只是将其从VALUES列表中删除。

e.g。如果要在tbl1中插入三个值但tbl2仅包含2个字段,请对第三个字段使用NULL

INSERT INTO tbl1 (a, b, c) SELECT tbl2.a, tbl2.b, NULL FROM tbl2

或者如果您有硬编码值,

INSERT INTO tbl1 (a, b, c) SELECT tbl2.a, tbl2.b, some_value FROM tbl2

或仅使用两个字段

INSERT INTO tbl1 (a, b) SELECT tbl2.a, tbl2.b FROM tbl2

现在,查询的VALUES部分有19个字段,但您的SELECT语句只提供了11个字段。为成功执行最后8个字段添加NULL或从VALUES列表中删除最后8个字段