Как добавить 2 временные таблицы вместе - PullRequest
3 голосов
/ 14 июля 2010

Если я создаю временные таблицы, которые имеют 2 столбца. id и score. Я хочу добавить их вместе.

Я хочу добавить их, если они содержат одинаковые id, тогда я не хочу дублировать id, а вместо этого добавлю баллы вместе.

если у меня есть 2 временные таблицы с именами t1 и t2

и t1 имели:

id 3 score 4
id 6 score 7

и t2 имели:

id 3 score 5
id 5 score 2

Я бы получил новую временную таблицу, содержащую:

id 3 score 9
id 5 score 2
id 6 score 7

Причина, по которой я хочу это сделать, заключается в том, что я пытаюсь создать поиск товаров. У меня есть несколько алгоритмов, которые я хочу использовать, 1 используя полный текст, другой нет. И я хочу использовать оба алгоритма, поэтому я хочу создать временную таблицу на основе алгоритма1 и временную таблицу на основе алгоритма2. Затем объедините их.

Ответы [ 6 ]

6 голосов
/ 14 июля 2010

Как насчет:

SELECT id, SUM(score) AS score FROM (
  SELECT id, score FROM t1
  UNION ALL
  SELECT id, score FROM t2
) t3
GROUP BY id
2 голосов
/ 14 июля 2010

Это не проверено, но вы сможете выполнить объединение двух таблиц, а затем выполнить выборку результатов, сгруппировав поля и добавив баллы

SELECT id,SUM(score) FROM
(
    SELECT id,score FROM t1
    UNION ALL
    SELECT id,score FROM t2
) joined
GROUP BY id
1 голос
/ 14 июля 2010
SELECT id, SUM(score) FROM
(
    SELECT id, score FROM #t1
    UNION ALL
    SELECT id, score FROM #t2
) AS Temp
GROUP BY id
1 голос
/ 14 июля 2010
select id, sum(score)
from (
 select * from table 1
 union all
 select * from table2
) tables
group by id
1 голос
/ 14 июля 2010

Выполните полное внешнее соединение по идентификатору. Выберите по идентификатору и сумме двух столбцов «оценка» после объединения значений в 0.

0 голосов
/ 14 июля 2010

Вам нужно создать объединение этих двух таблиц, после чего вы сможете легко сгруппировать результаты.

SELECT id, sum(score) FROM 

(
 SELECT id, score FROM t1
 UNION 
 SELECT id, score FROM t2
) as tmp
GROUP BY id;
...