2015-11-01 63 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来执行此操作。 –