在单个查询中具有多个选定结果的多个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'
这不起作用,因为它不知道什么值分配给什么选择器。
任何帮助将不胜感激。
答
是的,这是正确的行为,因为你实际上是试图合并在一列,这是不可能
(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;
您在子查询中缺少一个“FROM”子句。 – Siyual
由于完整查询非常长,它们只是选择值的示例。查询经过测试并在那里工作,但我需要将它们放在一起 – troggy69