在单个查询中具有多个选定结果的多个select语句

问题描述:

我想将多个选择链接到一个查询中,我已经查看了另一个线程,这在很大程度上有所帮助,但是这只能解决单个选择选项。在单个查询中具有多个选定结果的多个select语句

SELECT (
    SELECT COUNT(*) 
    FROM user_table 
    ) AS tot_user, 
    (
    SELECT COUNT(*) 
    FROM cat_table 
    ) AS tot_cat, 
    (
    SELECT COUNT(*) 
    FROM course_table 
    ) AS tot_course 

但我的问题是,我试图从每个选择像这样获得多个选项。

SELECT (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
) AS 'No. of Private Cases Generated', 
(
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
) AS 'No. of Web Cases Generated' 

我不断收到错误“#1241 - 操作数应包含1列(S)”

从我读这是因为我想下一个选择链接3个不同的值,这是我不想做。

最后这段代码就是问题所在。

) AS 'No. of Web Cases Generated' 

我已经尝试过这个解决方案,但显然我错过了专业知识来让它正确。

) "" AS Company, 
    "" AS Username, 
    "" AS 'No. of Private Cases Generated', 
    AS 'No. of Web Cases Generated' 

这不起作用,因为它不知道什么值分配给什么选择器。

任何帮助将不胜感激。

+1

您在子查询中缺少一个“FROM”子句。 – Siyual

+0

由于完整查询非常长,它们只是选择值的示例。查询经过测试并在那里工作,但我需要将它们放在一起 – troggy69

是的,这是正确的行为,因为你实际上是试图合并在一列,这是不可能

(SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
) AS 'No. of Private Cases Generated', 

想多列值你所寻找的是一个UNION很像

SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated' 
FROM some_table --first part of query 

UNION   -- combine the data 

SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
FROM some_other_table; -- second part of query 

根据您的评论,执行JOIN然后

select xx.Company, xx.Username,xx.'No. of Private Cases Generated', 
xxx.Company1, xxx.Username1, xxx.'No. of Web Cases Generated' 
FROM (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
FROM some_table ) xx 

JOIN (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
FROM some_other_table) xxx 
ON xx.Company = xxx.Company; 
+0

有没有办法将多重值链接到多列? – troggy69

+0

@ troggy69,如果有帮助,请参阅编辑答案。 – Rahul

+0

联盟将私人和网络作为独立的价值,但它会合并吗? – troggy69