Mysql 选择包含两个不同表和条件的sql语句
在我的数据库中有两个表,就像 系Mysql 选择包含两个不同表和条件的sql语句,mysql,sql,oracle,Mysql,Sql,Oracle,在我的数据库中有两个表,就像 系 //Department D# DNAME --------------- 1 RESEARCH 2 IT 3 SCIENCE 计划 //Project Budget D# --------------- 22500 1 22300 1 50000 2 所以我使用这个语句 SELECT D#,DNAME and sum(budget) as total budget
//Department
D# DNAME
---------------
1 RESEARCH
2 IT
3 SCIENCE
计划
//Project
Budget D#
---------------
22500 1
22300 1
50000 2
所以我使用这个语句
SELECT D#,DNAME and sum(budget) as total budget
FROM DEPARTMENT,PROJECT
GROUP BY D#;
我的输出应该是这样的,如果一个部门没有任何项目预算,则表示显示0
D# DNAME total budget
-------------------------------
1 RESEARCH 44800
2 IT 50000
3 SCIENCE 0
您缺少
where
子句:
SELECT d.D#,DNAME and sum(budget) as total budget
FROM DEPARTMENT d, PROJECT p
where d.d# = p.dt#
GROUP BY d.D#;
或包括没有预算的部门:
SELECT d.D#,DNAME and sum(budget) as total budget
FROM DEPARTMENT d
left outer join PROJECT p
on d.d# = p.d#
GROUP BY d.D#;
这可能对你有帮助
SELECT `D#`,`DNAME`,
IFNULL((SELECT sum(`budget`)
FROM `project` WHERE `project.`D#` = `Department`.`D#` ),0) AS `total budget`
FROM `Department`
如果在此查询上执行
EXPLAIN
,您可能会注意到,它使用索引的效率比使用groupby
@user3553846:需要更多帮助,或者此答案有用吗?