我的數據庫有如下表:MySQL的領域
- T1:博客文章
- T2:每個博客帖子
- T3附加表:爲博客文章
- T4英文註釋:西班牙語對博客文章的評論
而且我有以下用例: 我需要獲取最新的公司的ID每個博客文章連同博客文章本身。最新的評論可能在t3或t4表中。
我想出了以下的SQL,但它沒有按預期工作。
SELECT t1.id,
t1.one,
t1.two,
(
SELECT id FROM (
(SELECT * FROM t3 where t3.refid = t1.id)
UNION (SELECT * FROM t4 where t4.refid = t1.id)
ORDER BY datetime ASC LIMIT 1
) AS tempTable)
AS someValue
FROM t1
LEFT JOIN t2 ON (t1.id = t2.id)
WHERE t1.otherid=42 AND t1.somefield > 0
ORDER BY t1.someOtherField
LIMIT 5
任何提示,如果和/或如何這是可能的高度讚賞,謝謝!
當你說它不能按預期工作時,目前發生了什麼?還有表t3和t4他們是否有獨特的主鍵,如果你將如果要顯示一個英文評論,而不是西班牙評論讓我們說如何檢測? – SGB
對不起,我應該在帖子中寫下。 mysql說「未知的列t1.id」,似乎該子選擇無法訪問來自外部查詢的數據。這可能是因爲子選擇在select_expr中,而不在where_condition中。 – moritz
我想顯示來自包含最新評論的表格的評論。當然在真正的桌子上有鑰匙 - 這些只是虛擬的......) – moritz