嘗試這樣:
SELECT (SELECT MAX(DATE)
FROM (SELECT DATE
FROM PAYMENTS P
WHERE P.INVOICE_ID = IN.INVOICE_ID
UNION
SELECT DATE
FROM SENDS S
WHERE S.INVOICE_ID = IN.INVOICE_ID) SUB) MAX_DATE,
IN.*
FROM INVOICE IN
ORDER BY 1 DESC
LIMIT 5
更新:
的SQL上述方法無效,因爲該表發票不能分選第二級別內進行訪問。
試試這個選擇:
SELECT V.*
FROM verkoopfacturen AS V
LEFT JOIN (SELECT invoice_id,
MAX(datum) as max_date
FROM (SELECT P.invoice_id,
P.date AS datum
FROM invoice_payments AS P
UNION
SELECT S.file_id,
S.datum AS datum
FROM email AS S) SUB
GROUP BY SUB.invoice_id) SUB2 on V.Verkoopfact_InfId = SUB2.invoice_id
ORDER BY SUB2.MAX_DATE DESC
LIMIT 5
thanx您的答案,但我不能使它發揮作用。首先我得到一個錯誤:每個派生表都必須有自己的別名 – 2013-02-22 11:15:45
嘗試將別名添加到第一列的第一個子查詢中,我更新了將'SUB'作爲別名的答案。 – 2013-02-22 11:21:06
我嘗試這樣做:SELECT ( \t SELECT MAX(基準面) FROM ( \t SELECT P.date AS基準 FROM invoice_payments爲P WHERE P.invoice_id = V.Verkoopfact_InfId UNION SELECT S.datum爲基準 從電子郵件爲S WHERE S.file_id = V.Verkoopfact_InfId \t) SUB ) MAX_DATE,五* FROM verkoopfacturen爲V ORDER BY 1 DESC LIMIT 5但是,我收到一個錯誤:'where子句'中的未知列'V.Verkoopfact_InfId'奇怪,因爲我確信列存在。 – 2013-02-22 11:55:15