繁体   English   中英

单个查询中具有多个选择结果的多个选择语句

[英]Multiple select statements with multiple selected results in Single query

我试图将多个选择链接到一个查询中,我在这里查看了另一个线程,这很有帮助,但这仅说明了单个选择选项。

  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列”

从我读到的内容来看,这是因为我试图将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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM