MySQL объединяет две таблицы и добавляет значения столбцов - PullRequest
1 голос
/ 10 мая 2010

Мои знания MySQL не очень глубоки. Если у меня есть две таблицы, которые, например, выглядят так:

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

Как я могу объединить их в запросе по их дате и получить сумму table1.v1 и table2.v1, а также сумму table1.v3 и table2.v3? V2 следует игнорировать.

Ответы [ 2 ]

6 голосов
/ 10 мая 2010

Вы можете сделать следующее:

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);

И если вам нужна общая совокупность обоих столбцов, вы также можете сделать следующее:

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);

Контрольный пример:

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);

Первый результат запроса:

+------------+--------+--------+
| date       | v1_sum | v3_sum |
+------------+--------+--------+
| 2010-05-01 |     68 |     60 |
| 2010-05-02 |     59 |     39 |
| 2010-05-03 |     62 |    110 |
+------------+--------+--------+

Второй результат запроса:

+--------+--------+
| v1_sum | v3_sum |
+--------+--------+
|    189 |    209 |
+--------+--------+
0 голосов
/ 27 мая 2014

создать таблицу corse ( id int (11), имя varchar (10),
кдэ варчар (10) );

затем создайте другую таблицу

создать столовую шпильку ( id int (11),
имя варчар (10),
ssub varchar (10)
);

, а затем добавить первичный ключ на стойку стола

изменить таблицу шпильки добавить первичный ключ (id);

и затем применил внешний ключ на corse

изменить таблицу corse добавить ссылки внешнего ключа (id) стержня (id);

это последний и последний шаг

выбрать s.id, s.sname, c.cname, c.cdet из группы соединений n s.id = c.id;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...