我的数据库有如下表: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