我是SQL的新手,所以我不太清楚如何处理这个我必须做的查询...
我有多个表格,它们都有2列我想要(path
和Union select ("date_added" and "path")
)。
所以我为每张桌子做了SELECT `date_added`, `path` FROM `art_1` UNION SELECT `date_added`, `path` FROM `art_5484`
。所以我现在有一个表格,其中包含我想要的所有表格中的所有行:
SELECT `path`
FROM cross_join = (SELECT `date_added`, `path` FROM `art_1` UNION SELECT `date_added`, `path` FROM `art_5484`)
WHERE `date_added` = MIN(`date_added`)
这很好用,但现在我需要得到最低日期的行(我使用min函数)。所以我想在我上次查询得到的表格上做选择,所以我这样做:
{{1}}
但这不起作用;我猜这是一个语法错误,但我不知道在哪里......
如果有人可以帮助我,那就太棒了!
答案 0 :(得分:1)
获得最短约会的一种方法是使用order by
和limit
:
SELECT `path`
FROM (SELECT `date_added`, `path` FROM `art_1` UNION ALL
SELECT `date_added`, `path` FROM `art_5484`
) a
ORDER BY date_added DESC
LIMIT 1;
注意:即使存在重复项,也只返回一个值。另外,我将UNION
更改为UNION ALL
。默认情况下,您应该使用UNION ALL
,因为UNION
会产生删除重复项的开销。