我正在尝试根据在另一个相关表中找到的信息从第一个表中删除行。第一个测试是我得到了正确的行:
mysql> select count(*) from stationinfluence where stationinfluence.station_id = 12024 and exists (select 1 from star where star.id = `stationinfluence`.`star_id` and pow(pow(star.x - -6,2)+pow(star.y-5,2),0.5) > 300);
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
只需使用select *
即可显示正确的行。所以没关系。但是,如果我采用完全相同的语句,但将select count(*)
更改为delete
,则会收到一条我无法理解的错误消息:
mysql> delete from stationinfluence where stationinfluence.station_id = 12024 and exists (select 1 from star where star.id = stationinfluence.star_id and pow(pow(star.x - -6,2)+pow(star.y-5,2),0.5) > 300);
ERROR 1054 (42S22): Unknown column 's.star_id' in 'where clause'
我不知道它来自哪个s.star_id
。
此数据库没有视图。
答案 0 :(得分:0)
发现s.star_id在after delete
触发器中被引用,更改该触发器解决了这个问题。