我有3个表格,其结构几乎与下面的数据相同,table name = myshop structure (id_no, time, teams, home, draw, away)
table name = myshop2 structure (id_no, time, teams, home, draw, away)
table name = myshop3 structure (id_no, teams, home, draw, away)
`TABLE NAME: MYSHOP
ID_NO TIME TEAMS HOME DRAW AWAY
209 00:00 FK PARTIZAN vs CSKA MOSCOW 3.3 3.75 1.85
210 00:00 RAPID VIENNA vs CELTIC 2.6 3.3 2.3
211 00:00 SPARTAK MOSCOW vs FK VOZDOVAC 1.3 5.2 6.75
212 00:00 LUDOGORETS vs DINAMO MOSCOW 2.2 3.35 2.6
213 00:00 FC THUN vs FC ZURICH 1.9 3.8 2.6
214 01:00 FC NURNBERG vs BOHEMIANS 1905 1.45 3.9 4.6
215 01:00 LILLESTROM vs STROMSGODSET 1.0 3.5 3.35
216 01:00 HALMSTAD vs IF ELFSBORG 2.4 3.5 2.0
217 05:00 FLANDRIA vs CHACARITA JUNIORS 3.78 2.67 2.54
218 05:00 CA RIVER PLATE vs DANUBIO 3.25 3.15 2.7
219 05:00 JUVENTUD vs CERRO 3.55 3.15 2.3
TABLE NAME: MYSHOP 2
ID_NO TIME TEAMS HOME DRAW AWAY
9 00:00 FK PARTIZAN vs CSKA MOSCOW 2.3 3.75 1.85
10 00:00 RAPID VIENNA vs CELTIC 1.6 3.3 2.3
11 00:00 SPARTAK MOSCOW vs FK VOZDOVAC 2.3 5.2 6.75
12 00:00 LUDOGORETS vs DINAMO MOSCOW 1.2 3.35 2.6
13 00:00 FC THUN vs FC ZURICH 2.9 3.8 2.6
14 01:00 FC NURNBERG vs BOHEMIANS 1905 2.453.9 4.6
15 01:00 LILLESTROM vs STROMSGODSET 1.0 3.5 3.35
16 01:00 HALMSTAD vs IF ELFSBORG 2.4 3.5 2.0
17 05:00 FLANDRIA vs CHACARITA JUNIORS 1.782.67 2.54
18 05:00 CA RIVER PLATE vs DANUBIO 1.25 3.15 2.7
19 05:00 JUVENTUD vs CERRO 1.55 3.15 2.3
TABLE NAME: MYSHOP 3
ID_NO TEAMS HOME DRAW AWAY
33 FK PARTIZAN vs CSKA MOSCOW 2.3 2.75 2.85
10 RAPID VIENNA vs CELTIC 1.6 2.3 2.3
11 SPARTAK MOSCOW vs FK VOZDOVAC 2.3 3.2 6.75
21 LUDOGORETS vs DINAMO MOSCOW 1.2 2.35 2.6
31 FC THUN vs FC ZURICH 2.9 2.8 2.6
42 FC NURNBERG vs BOHEMIANS 1905 2.45 2.9 4.6
53 LILLESTROM vs STROMSGODSET 3.0 2.5 3.35
64 HALMSTAD vs IF ELFSBORG 2.4 2.5 2.0
75 FLANDRIA vs CHACARITA JUNIORS 1.78 1.67 2.54
86 CA RIVER PLATE vs DANUBIO 1.25 1.15 2.7
97 JUVENTUD vs CERRO 1.55 1.15 2.3
`
是否可以执行单个关节手术
这些表中存在的数据具有相同的团队值,但在
HOME
,DRAW
和AWAY
上的值不同,所以我想要的是执行此规范的sql语法。它应将
home
表中myshop
的值除以1,将draw
表中myshop2
的值除以1,将away
表中myshop3
的值除以1,然后将所有值求和为每个团队获取一个值,并且输出应与相应的团队合计,如下面的简单示例所示。FK PARTIZAN vs CSKA MOSCOW 105
理想语法应该像
SELECT from MYSHOP(home/1)+MYSHOP2(draw/1)+MYSHOP3(away/1) where TEAMS(MYSHOP=MYSHOP2=MYSHOP3)
需要您对此的想法。
最佳答案
恐怕您的语法愿望和语法现实不匹配。
我真的不知道您要达到什么目的,但是依靠诸如SPARTAK MOSCOW vs FK VOZDOVAC
之类的字符串来连接不太可能很好。例如,这些“加入”应该:
莫斯科斯巴达克vs伏兹多瓦克
FK沃兹多瓦克vs斯帕塔克·莫斯科
考虑将其作为合并这三个表的一种方式:
SELECT
1 tbl_src, id_no, teams, home, draw, away
FROM myshop
UNION ALL
SELECT
2 tbl_src, id_no, teams, home, draw, away
FROM myshop2
UNION ALL
SELECT
3 tbl_src, id_no, teams, home, draw, away
FROM myshop3
试试这个:
SELECT
teams
, SUM(home)
, SUM(draw)
, SUM(away)
FROM (
SELECT
1 tbl_src, id_no, teams, home, draw, away
FROM myshop
UNION ALL
SELECT
2 tbl_src, id_no, teams, home, draw, away
FROM myshop2
UNION ALL
SELECT
3 tbl_src, id_no, teams, home, draw, away
FROM myshop3
) AS d
GROUP BY
teams