我希望一些字段数据从一个表(称为配置文件)插入另一个表(服务)以及表中的那些字段数据(值要插入的数据,即服务)。但是我失败了。我是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());
答案 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个字段