Reputation: 2900
My knowledge of MySQL is not very in depth. If I have two tables that for example look like this:
Table1
Date v1 v2 v3
05/01/2010 26 abc 45
05/02/2010 31 def 25
05/03/2010 50 ghi 46
Table2
Date v1 v2 v3
05/01/2010 42 jkl 15
05/02/2010 28 mno 14
05/03/2010 12 pqr 64
How can I join them in a query by their date and have the sum of table1.v1 and table2.v1 and also have the sum of table1.v3 and table2.v3? V2 should be ignored.
Upvotes: 1
Views: 11613
Reputation: 1
create table corse
(
id int(11),
cname varchar(10),
cdet varchar(10)
);
then create another table
create table stud
(
id int(11),
sname varchar(10),
ssub varchar(10)
);
and then add primary key on table stud
alter table stud add primary key(id);
and then applied foreign key on corse
alter table corse add foreign key(id) references stud(id);
thats it last and final step
select s.id,s.sname,c.cname,c.cdet from stud s join corse c o n s.id=c.id;
Upvotes: 0
Reputation: 344261
You may want to do the following:
SELECT t1.date, t1.v1 + t2.v1 AS v1_sum,
t1.v3 + t2.v3 AS v3_sum
FROM table1 t1
JOIN table2 t2 ON (t1.date = t2.date);
And if you want the total aggregate of both columns, you can also do as follows:
SELECT SUM(t1.v1 + t2.v1) AS v1_sum,
SUM(t1.v3 + t2.v3) AS v3_sum
FROM table1 t1
JOIN table2 t2 ON (t1.date = t2.date);
Test case:
CREATE TABLE table1 (`date` date, `v1` int, `v3` int);
CREATE TABLE table2 (`date` date, `v1` int, `v3` int);
INSERT INTO table1 VALUES ('2010-05-01', 26, 45);
INSERT INTO table1 VALUES ('2010-05-02', 31, 25);
INSERT INTO table1 VALUES ('2010-05-03', 50, 46);
INSERT INTO table2 VALUES ('2010-05-01', 42, 15);
INSERT INTO table2 VALUES ('2010-05-02', 28, 14);
INSERT INTO table2 VALUES ('2010-05-03', 12, 64);
First query result:
+------------+--------+--------+
| date | v1_sum | v3_sum |
+------------+--------+--------+
| 2010-05-01 | 68 | 60 |
| 2010-05-02 | 59 | 39 |
| 2010-05-03 | 62 | 110 |
+------------+--------+--------+
Second query result:
+--------+--------+
| v1_sum | v3_sum |
+--------+--------+
| 189 | 209 |
+--------+--------+
Upvotes: 6