请帮助改善以下查询:提高SQL查询
UPDATE queries q
SET query = (SELECT q1.query
FROM queries q1
WHERE q1.table_name = q.table_name
AND q1.name = 'View1')
WHERE q.NAME = 'View2'
AND q.table_name IN ('companies', 'persons');
我的查询表的结构:
table_name query name
-------------------------
companies 1 View1
persons 2 View1
companies 3 View2
persons 4 View2
PS:我希望它可以通过标准的SQL语法来进行的,没有特定的数据库服务器功能。
pps:任务的目的:table_name的“query”字段对于“name”View1和View2都应该是相同的。
例如,在目前的企业视图1 = 1的“查询”,视图2 = 3的查询,对人这些值是2和4。
我想唯一的SQL查询来更新记录因此对于View1和View2的公司,“查询”值应为1,对于View1和View2的人员,“查询”值应为2.
改进方法?它不会按照您期望的方式改变数据吗?它表现不好吗? – Thomas 2011-04-01 04:44:32
对于什么数据库? – 2011-04-01 04:45:49
您编写查询的方式似乎完全合理。如果性能问题,您可能需要添加适当的索引。在这种情况下,首先确保table_name上有一个索引,因为这是您加入的字段。 – 2011-04-01 04:53:15