2013-01-13 121 views
0

我有一個包含3列的表:選擇最多的日期

  • id (int)
  • name (String)
  • date_created (Date)

如何選擇姓氏添加到基於該date_created數據庫柱?

+2

您正在使用什麼RDBMS有所有的記錄? –

+0

你想如何處理關係? –

回答

2

SQL-SERVER:

SELECT TOP 1 name 
FROM dbo.TableName 
ORDER BY date_created DESC 

的MySQL:

SELECT name 
FROM dbo.TableName 
ORDER BY date_created DESC 
Limit 1 

您可以使用TOP 1 WITH TIES在T-SQL如果要包括所有在多個行具有相同的最高值date_created。在MySQL上,你需要使用子查詢。 Here's一個例子。

0

試試這個:

SELECT name FROM table 
WHERE date_created = (SELECT MAX(date_created) FROM table) 
+0

這將返回符合該條件的N條記錄 - data_created不是時間戳。 – lightonphiri

+0

@phiri「姓......基於**'date_created' **列」這是來自OP。 –

+0

但是,我知道您的解決方案不會返回添加的姓氏 - 它會返回在該日期添加的所有姓氏。例如如果table在'13/01/2013'上添加了1k個記錄,那麼您的解決方案將返回所有1k個記錄,而不是最後一個記錄添加... – lightonphiri

0

如果你有一個自動增量(在SQL Server身份)ID,那麼您可以使用來代替:

select name 
form table 
order by id desc 
limit 1 

當然,limit 1取決於數據庫。它將在SQL Server中爲select top 1,Oracle中爲where rownum = 1,db2中爲fetch first 1 row

0

您還可以使用子查詢:

select t1.id, t1.name, t1.date_created 
from yourtable t1 
inner join 
(
    select max(date_created) MaxDate 
    from yourtable 
) t2 
    on t1.date_created = t2.maxdate 

這將返回max(created_date)