这是我想要做的事情
$sql = "INSERT INTO LocationGeofencePoint( PointNo, Latitude, Longitude)
VALUES ( (SELECT LocationGeofenceID FROM LocationGeofence WHERE GeofenceName='".$name."'),
(SELECT MAX(PointNo)+1 FROM LocationGeofencePoint),
'".$lat."',
'".$long."')";
但这种情况发生了。
这是2个单独的表LocationGeofencePoint和LocationGeofence,我试图从LocationGeofence获取值到LocationGeofencePoint。
结果应该是这样的 LocationGeofencePoint(2,14,54.333,55.435)(这些是值)
LocationGeofence(2,Test,group1)(尝试将此' 2'放入位置geofencepoint)
我也尝试过,以防万一我的编辑出了问题,但它不是,我已经没有想法了,对我能做什么有任何想法?我尝试分离查询,但我还需要2个选择来运行第二个查询,但它不起作用。
答案 0 :(得分:1)
首先,GeoReferencePoint
应声明为identity
列。你不应该在insert上增加值。数据库为您做到了。
然后,您应该使用insert . . . select
:
$sql = "INSERT INTO LocationGeofencePoint (PointNo, Latitude, Longitude)
SELECT LocationGeofenceID, $lat, $long
FROM LocationGeofence
WHERE GeofenceName = '".$name."';
第三,这也不对。传入的三个值应该使用参数。
答案 1 :(得分:0)
你的意思是'停止工作',因为颜色与第一个SELECT的颜色不一样吗?
如果是这样,请不要担心编辑的问题。运行代码后,您将获得所需的结果。我以前经历过同样的经历。
答案 2 :(得分:0)
$sql = "INSERT INTO LocationGeofencePoint( PointNo, Latitude, Longitude)
VALUES ( (SELECT LocationGeofenceID FROM LocationGeofence WHERE GeofenceName='".$name."'),
(SELECT MAX(PointNo)+1 FROM LocationGeofencePoint),
'".$lat."',
'".$long."')";
在插入字段中添加相同数量的列及其列值。