Ash*_*wal -1 mysql mysql-error-1064
MYSQL(version5.1)中以下查询的GOT错误
SELECT year,month,sum(fact_1),sum(fact_2),sum(fact_3),sum(fact_4)
from(
select year,month,fact_1,fact_2,0 as fact_3,0 as fact_4 from table_1
intersect
select year,month,0 as fact_1,0 as fact_2,fact_3,fact_4 from table_2
) as combined_table
group by month,year
Run Code Online (Sandbox Code Playgroud)
代码为#1064的错误行: -
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在'select year,month,0 as fact_1,0 as fact_2,fact_3,fact_4 from table_2'附近使用正确的语法,作为第5行的ct g'
但是以下查询给出了期望的结果: -
SELECT year,month,sum(fact_1),sum(fact_2),sum(fact_3),sum(fact_4)
from(
select year,month,fact_1 ,fact_2,0 as fact_3,0 as fact_4 from table_1
union
select year,month,0 as fact_1,0 as fact_2,fact_3,fact_4 from table_2
) as ct
group by month,year
Run Code Online (Sandbox Code Playgroud)
任何人都能说出我犯的错误吗?任何人都可以帮助我理解问题背后的根本原因.
你可以INTERSECT使用INNER(self)很容易伪造JOIN,这样你只能从两个结果集中获取行:
SELECT `a`.`id`, `a`.`name`
FROM `a`
INNER JOIN `b`
USING (`id`, `name`)
Run Code Online (Sandbox Code Playgroud)
MINUS可以假装LEFT JOIN:
SELECT DISTINCT `a`.`id`, `a`.`name`
FROM `a`
LEFT JOIN `b`
USING (`id`, `name`)
WHERE `b`.`id` IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3984 次 |
| 最近记录: |