Вам нужно каким-то образом соединить список номеров.
Одним из способов является использование таблицы подсчета с достаточным количеством чисел.
Затем соедините эти числа со всеми уникальными A, B, C, D.
Это даст основу для всех возможных комбинаций.
Затем СЛЕДУЙТЕ СОЕДИНИТЬ таблицы с этим результатом.
Тест по SQL Fiddle здесь
SELECT
Abcd.A, Abcd.B, Abcd.C, Abcd.D,
Nums.n as E,
COALESCE(t1.F, 0) as F,
t2.`key`
FROM (
SELECT MIN(E) AS MinE, MAX(E) AS MaxE, MAX(F) AS MaxF FROM Table1
) AS Limits
JOIN Nums ON n BETWEEN Limits.MinE AND Limits.MaxE
JOIN (
SELECT DISTINCT A, B, C, D FROM Table1
) AS Abcd
LEFT JOIN Table1 AS t1 ON (t1.A, t1.B, t1.C, t1.D) = (Abcd.A, Abcd.B, Abcd.C, Abcd.D) AND t1.E = Nums.n
LEFT JOIN Table2 AS t2 ON t2.`desc` LIKE CONCAT(Abcd.A, Abcd.B, Abcd.C, Abcd.D, '%')
ORDER BY Abcd.A, Abcd.B, Abcd.C, Abcd.D, COALESCE(t1.F, Limits.MaxF), Nums.n;
Пример используемых данных:
create table Table1 (A varchar(2), B varchar(2), C varchar(2), D varchar(2), E int, F int);
create table Table2 (`key` int primary key auto_increment, `desc` varchar(30));
insert into Table1 (A, B, C, D, E, F) values
('AA','BB','CC','DD',1,100),
('AA','BB','CC','DD',3,200),
('AA','BB','CC','DD',5,300),
('EE','FF','GG','HH',1,600);
insert into Table2 (`desc`) values
('AABBCCDD'),
('EEFFGGHH');
CREATE TABLE Nums (n int primary key);
INSERT INTO Nums (n) VALUES
(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);