2016-01-03 80 views
0

第一查询:加入/联合两个查询

SELECT artikkel_id, liige_id, summa, date, SUM(summa) as papp 
    FROM rent WHERE date < NOW() group by liige_id 

结果: enter image description here 第二查询:

SELECT artikkel_id, maksja_id, summa, timestamp, SUM(summa) as peaks 
    FROM tulu group by maksja_id 

结果:​​

在表maksja_id & liige_id是一样的。

“加入”的一点是,我可以比较并显示liige_id/maksja_id“papp”和“peaks”值并在表格行中用颜色标记,当papp <随后用红色,绿色等时。

+4

问题是什么? –

回答

1

您想join两个结果集说

select xx.artikkel_id, l.nimi, xx.summa, xx.`date`, xx.papp, 
yy.summa as yysumma, yy.`timestamp`, yy.peaks 
from (SELECT artikkel_id, liige_id, summa, date, SUM(summa) as papp 
     FROM rent WHERE date < NOW() group by liige_id) xx 
join (SELECT artikkel_id, maksja_id, summa, timestamp, 
SUM(summa) as peaks FROM tulu group by maksja_id) yy 
on xx.liige_id = yy.maksja_id 
join liige l on l.liige_id = xx.liige_id; 
+0

看来,这就是我想要的,我怎么能为liige_id从加名表“liige” table struktur is row 1 liige_id row2 name – Margus

+0

你可以使用列别名来表示'column as somename',但我不确定我是否完全理解。 – Rahul

+0

与你例子结果是这样的: https://www.dropbox.com/s/lau1bhtgrbk1t54/Screenshot%202016-01-04%2002.34.07.png?dl=0 现在我想要我的表liige_id不是nr 9,而是lige_id显示为Margus,并且liige描述在桌上liige, liige表struktur liige_id /名字 到目前为止,我使用了一些内部连接命令,但现在我无法使用在正确的组合;) – Margus

0

加入和工会给出完全不同的结果。

取决于你希望你的结果看起来像这里是你可以做什么

  1. 联盟将根据你的例子给共同作用的结果,给你6条

    SELECT artikkel_id, liige_id as maksja_id, summa, date, SUM(summa) as papp 
    FROM rent WHERE date < NOW() group by liige_id 
    union 
    SELECT artikkel_id, maksja_id, summa, timestamp, SUM(summa) as papp 
    FROM tulu group by maksja_id 
    
  2. 加入会给你3条记录的结果,而不是上述6.

为此,您可以使用@Rahul的回答

就像拉胡尔·我想你想的加入工会

+0

是的加入是我想要的 – Margus

0

MySQL有一个SIGN function,将它的参数进行分类(如xx.papp-yy.peak为正,零或负。