2017-03-08 59 views
0

我想將多個選擇鏈接到一個查詢中,我已經查看了另一個線程,這在很大程度上有所幫助,但是這隻能解決單個選擇選項。在單個查詢中具有多個選定結果的多個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

回答

1

是的,這是正確的行爲,因爲你實際上是試圖合併在一列,這是不可能

(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