2013-07-24 68 views
1

我想要做的是檢索每個行的表的MAX(id),以滿足查詢條件。下面我添加了一個我想要檢索的數據的例子。將MAX(id)添加到結果集的每一行

我的表:

+------+----------+ 
| id | content | 
| 1 | Hello | 
| 2 | World | 
| 3 | !!!!  | 
+------+----------+ 

預期的查詢結果:

+------+----------+-----+ 
| maxid| content | id | 
| 3 | Hello | 1 | 
| 3 | World | 2 | 
| 3 | !!!!  | 3 | 
+------+----------+-----+ 

這將有WHEREHAVING報表工作。

回答

3

試試這個方法:(!從hims056謝謝)

select (select max(id) from tab) as maxid, content, id 
from tab 

select t1.maxid, t.content, t.id 
from tab t 
cross join (select max(id) as maxid from tab) t1 

Sql Fiddle DEMO

+1

首先不會工作,但其次是完美的。 – hims056

+0

@ hims056我刪除了,謝謝! – Parado

+1

用於'CROSS JOIN'的+1。 [SQLFiddle](http://sqlfiddle.com/#!2/290fd/6)。 – hims056

0

假設你已經添加了maxid柱:

UPDATE mytable SET maxid = (
    SELECT MAX(id) FROM mytable 
); 
+0

對不起,但這不能回答我的問題。這個查詢改變了表格,它不會改變結果數據集。 – jeroenvisser101

相關問題