我得到了一个#1248-每个派生表都必须有自己的别名。我正在使用WAMP服务器 [英] I am getting a #1248 - Every derived table must have its own alias. I am using a WAMP server
本文介绍了我得到了一个#1248-每个派生表都必须有自己的别名。我正在使用WAMP服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人能告诉我这是怎么回事吗?为什么我收到错误#1248-每个派生表都必须有自己的别名。?
UPDATE (SELECT t.crime_definition p1, s.crime_definition p2
FROM crime_2007 t, crime_2010 s
WHERE crime_2007.crime_id_2007 = crime_2010.crime_id)
SET p1 = p2
我研究了很长时间,找不到问题所在。我正在尝试将一个表中的列复制到另一个表中的列。
提前感谢您!
推荐答案
"派生"表是括号之间的SELECT。您可以(在您的情况下也应该)为其指定一个(短暂的)名称。
UPDATE ( SELECT t.crime_definition p1, s.crime_definition p2
FROM crime_2007 t, crime_2010 s
WHERE crime_2007.crime_id_2007 = crime_2010.crime_id
) AS dummyName
SET p1 = p2
但上述方法(至少在MySQL中)也不起作用,因为它会告诉您"目标表dummyName不可更新"。
您可以使用它,因为它是标准的ANSI SQL:
,应该可以在许多系统中使用UPDATE crime_2007
SET crime_definition =
( SELECT s.crime_definition
FROM crime_2010 s
WHERE crime_2007.crime_id_2007 = s.crime_id
)
许多系统使用"非标准"SQL,比如Lamak对SQL-Server的回答,这只能在MySQL中运行:
UPDATE crime_2007 t, crime_2010 s
SET t.crime_definition = s.crime_definition
WHERE t.crime_id_2007 = s.crime_id
这篇关于我得到了一个#1248-每个派生表都必须有自己的别名。我正在使用WAMP服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文