2015-11-01 88 views
0

我試圖採取的MySQL的接合2查詢

SELECT SUM(pont) AS totalpont 
     FROM 
    (SELECT jogador.pont from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j1 
    UNION 
    SELECT jogador.pont from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j2 
    UNION 
    SELECT jogador.pont from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j3 
    UNION 
    SELECT jogador.pont from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j4) T 

SELECT mercado FROM variaveis 

結果存入相同的查詢,兩個獨立的數據集並排側,例如查詢1返回1,2,3,4,5點查詢2返回A,B,C。我想結果爲1時,A,2,B,3,C 4,空值,如圖5所示,空

+1

拉菲爾,你能解釋一下你的問題嗎? – Shankar

+0

我需要將這兩個查詢合併爲一個。 –

+0

UNION結合LINES的兩個查詢而不是ROWS,您需要的是垂直連接,因此您需要使用JOIN操作。 –

回答

0

我希望你需要合併這些查詢,並且需要一個SUM,因爲你可以使用'AS'語法(將mercado重命名爲pont),這樣你就可以求和了。

SELECT SUM(COALESCE(pont, 0)) as totalpont, SUM(COALESCE(mercado, 0)) AS totalmercado 
     FROM 
    (SELECT jogador.pont, NULL AS mercado from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j1 
    UNION 
    SELECT jogador.pont, NULL AS mercado from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j2 
    UNION 
    SELECT jogador.pont, NULL AS mercado from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j3 
    UNION 
    SELECT jogador.pont, NULL AS mercado from jogador,usuarios WHERE email='like' and jogador.id=usuarios.j4) T 
    UNION 
    SELECT NULL AS pont, mercado FROM variaveis)T 
+0

使用UNION我有一個單一的線,我要分別使用「pont」和「mercado」的數據 –

+0

@RafaelFrug請查看每個結果(pont,mercado)都包含兩列的更新後的查詢。 – Shankar

+0

仍然無法正常工作,我想我不能使用UNION來執行此操作。 –