从多个表中获取count(*)值

时间:2011-06-23 05:33:28

标签: java sql date count

我在此网站找到了我的查询解决方案。我需要从多个表Select count(*) from multiple tables

中获取count(*)值

我的另一个问题是获取那些返回>的多个表的DATE值。 1行计数。我必须比较日期并获得最新信息。我必须从12个表中查询。假设我得到了>表1,2,3,4,5的值为1,我需要比较它们的DATE值。 示例代码:

SELECT(SELECT COUNT(*) FROM   table1) AS count1,
(SELECT COUNT(*) FROM   table2) AS count2,
(SELECT COUNT(*) FROM   table3) AS count3 FROM dual

count1 count2 count3
  3       2     2

我需要在这些表中选择最近的日期。

Select date from table1 order by date desc
Select date from table2 order by date desc
Select date from table3 order by date desc

如果没有桌面扫描,我该怎么办呢?

修改 好的。说明说 “使用id作为键从表1-12获取匹配的记录”。 如果没有记录,则显示“未找到记录” 另外:通过比较所有表格中的data_encoded来获取最新日期的记录。

2 个答案:

答案 0 :(得分:3)

很难说出你追求的是什么,但这是一个猜测:

SELECT
    (SELECT MAX(date) FROM table1) AS latest1,
    (SELECT MAX(date) FROM table2) AS latest2,
    (SELECT MAX(date) FROM table3) AS latest3,
    -- etc
FROM dual;

您可以通过在date上设置索引来避免表扫描,在这种情况下,优化器应该执行仅索引扫描(非常快)。

答案 1 :(得分:0)

您是否尝试对它们进行分组并订购并选择第一个日期

选择ID,日期,计数(日期) 来自table1 t1 内连接table2 t2其中t1.id = t2.id 内连接table3 t3其中t1.id = t3.id 等等.. 按日期分组 按日期排序desc

长的那条线