来自子查询的MySQL参考结果

时间:2010-03-13 15:46:24

标签: mysql sql subquery sql-update

这就是我正在做的事情

update t1 set x=a,y=b where a and b are obtained from (select query here)
  1. 我知道选择查询
  2. select查询返回多个相同的结果
  3. 当我使用group by或者不同的查询执行速度相当慢时
  4. a和b是前向引用,因此mysql报告错误
  5. 我想设置一个等于第一行中获得的值,b等于各列中第一行中获得的值,以避免group by。我不知道如何引用select查询的第一个结果。
  6. 我怎样才能实现这一切?

2 个答案:

答案 0 :(得分:1)

LIMIT指定从结果集开头返回的行数:

SELECT * FROM t2 LIMIT 1;#检索第一行

您的案例中的

LIMIT将应用于from子句中的子查询。

这些linsk可以帮助您使用使用子查询的update

Update with Subquery

Subqueries in MySQL, Part 1

答案 1 :(得分:0)

你可能正在寻找像...这样的东西。

update T1, (select Sub1.a, Sub1.b from YourSubQueryTable Sub1 where ... ) SubResult
  set T1.a = SubResult.a,
      T1.b = SubResult.b
  where
      Some T1.Criteria To be applied