关于一次打印3个表的SQL查询

标签 sql db2

代码:

 select count(*) AS "NR_COMEDIES" from COMEDY

 select count(*) AS "NR_DRAMAS" from DRAMA 

 select count(*) AS "NR_TRAGEDIES" from TRAGEDY

我正在尝试将所有 3 个表的计数函数打印为一张大表。

其中每个表都有自己的列,如上面命名。如何将所有 3 张 table 放在一张大 table 上?

我尝试使用 union 但不起作用。

最佳答案

也许CROSS JOIN应该适合你

SELECT A.NR_COMEDIES,
       B.NR_DRAMAS,
       C.NR_TRAGEDIES
FROM   (SELECT Count(*) AS "NR_COMEDIES"
        FROM   COMEDY) A
       CROSS JOIN (SELECT Count(*) AS "NR_DRAMAS"
                   FROM   DRAMA)B
       CROSS JOIN (SELECT Count(*) AS "NR_TRAGEDIES"
                   FROM   TRAGEDY) C 

或在所有查询之间执行笛卡尔积

SELECT A.NR_COMEDIES,
       B.NR_DRAMAS,
       C.NR_TRAGEDIES
FROM   (SELECT Count(*) AS "NR_COMEDIES"
        FROM   COMEDY) A,
       (SELECT Count(*) AS "NR_DRAMAS"
        FROM   DRAMA)B,
       (SELECT Count(*) AS "NR_TRAGEDIES"
        FROM   TRAGEDY) C 

关于关于一次打印3个表的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041421/

相关文章:

database - db2 查询时间戳数据类型的奇怪行为

c - Ubuntu 12.04 上的 IBM DB2 v10.1 找不到 C 头文件

Mysql - 约会表的最佳主键

mysql - mysql、db2 和 oracle 中的单独查询

sql - 在时间戳列上为使用年份函数的查询创建索引

sql - 使用 having 子句查找记录

c# - 参数化查询的问题

c# Entity Framework 什么时候应该使用新的 dbContext?

sql - 如何计算运行乘法

asp.net - 如何调试数据集性能