У вас есть два разных варианта.Выбор зависит от того, насколько свежими должны быть данные.
A TEMPORARY TABLE отделен от исходного набора данных, который был запрошен.Если исходные данные изменяются, временная таблица не изменяется ...
CREATE TEMP TABLE temp_table AS
SELECT id, gamenumber, team, name, points
FROM games
WHERE gamenumber IN (
SELECT gamenumber
FROM games
WHERE
(name = 'Tom Smith' AND team = 'team tower') OR
(name = 'Andy Cooper' AND team = 'team windy')
GROUP BY gamenumber
HAVING MIN(name) <> MAX(name)
);
A ВРЕМЕННЫЙ ВИД , однако, будет обновляться всякий раз, когда обновляется исходный набор данных ...
CREATE TEMP VIEW temp_view AS
SELECT id, gamenumber, team, name, points
FROM games
WHERE gamenumber IN (
SELECT gamenumber
FROM games
WHERE
(name = 'Tom Smith' AND team = 'team tower') OR
(name = 'Andy Cooper' AND team = 'team windy')
GROUP BY gamenumber
HAVING MIN(name) <> MAX(name)
);
Имейте в виду, что если временная таблица или имя представления соответствует существующей постоянной таблице или представлению, она будет извлекать данные оттуда!Чтобы избежать этого, добавьте к именам таблиц temp.
, как показано ниже ...
SELECT * FROM temp.temp_table;
SELECT * FROM temp.temp_view;