2012-07-24 61 views
-2

我需要僅使用WHERE子句檢索由客戶創建的第一條記錄。我不能使用極限,ORDER BY等僅使用WHERE子句檢索第一條記錄

SELECT * 
FROM mytable 
WHERE customer_id = 1 
    AND created = ? the earliest timestamp for that customer 

編輯:在那些誰將會問的期待,這是在我使用當前框架的特定情況的限制。不要擔心。我只需要這樣做。如果無法完成,請讓我知道它無法完成。

在此先感謝。

編輯2:謝謝大家,但我不能使用任何連接。任何更多的想法,或者它可以不完成?

+0

這是功課?如果是的話,你應該把它標記爲家庭作業。 – Taryn 2012-07-24 16:37:35

+1

10年前我離開了學校......這不是作業lol – BadHorsie 2012-07-24 16:39:45

+1

你能指出哪個框架在查詢期間不允許LIMIT嗎? – ajreal 2012-07-24 16:40:21

回答

1
SELECT * 
FROM mytable 
WHERE customer_id = 1 AND created IN (
    SELECT min(created) AS MinCreated 
    FROM mytable 
    WHERE customer_id = 1 
) 
0

...AND created = MIN(SELECT timestamp FROM mytable)能完成這項工作?

+0

如果不在'customer_id'的'SELECT'上添加'INNER JOIN',或者您會爲任何'customer_id'獲得最早的'timestamp'。 – 2012-07-24 16:39:36

0

您可以使用,

select * from mytable where customer_id = 1 
    AND (select count(*) from mytable) <=1 
+0

沒有可用的自動rownum列,我相信這暗示了'SQL Server'在哪裏可以添加一個,而問題陳述'MySQL'沒有那個可變性。 – 2012-07-24 16:49:20

+0

無論如何,我無法使用ORDER BY,正如我在我的問題中所說的那樣。 – BadHorsie 2012-07-24 16:50:56

+1

哦!我很抱歉。 – heretolearn 2012-07-24 16:56:13

相關問題