【发布时间】:2012-03-15 04:26:25
【问题描述】:
对于以下问题,我已经有了一个可行的解决方案,但我担心它是愚蠢的或低效的。
有一个带有(id, attributes...) 列的Thing 表和一个带有(id, thing_id, version_attributes...) 列的ThingVersion 表问题是从Thing 中选择一个对应的ThingVersion 行。
目前我有类似的东西
SELECT Thing.id AS id, Foo.whatever
FROM Thing JOIN Foo ON Thing.id=Foo.thing_id
WHERE Thing.id IN (
SELECT thing_id FROM ThingVersion TV
WHERE 1 = (
SELECT COUNT(*)
FROM ThingVersion TV2
WHERE TV2.thing_id = TV.thing_id)
)
ORDER BY Foo.whatever
它似乎给出了正确的结果,作为一个强调的非专家,它似乎是不言自明的,但是——三个选择了?!?! -- 我不禁觉得一定有更好的办法。
有吗?
【问题讨论】: