Een goede plek om te beginnen zou zijn:
SELECT
A.num_1, B.num_2
FROM
Smaller AS A JOIN Smaller AS B ON (A.num_1 < B.num_2)
ORDER BY A.num_1, B.num_2;
Plaats dit in uw opgeslagen procedure in een cursor, herhaal de cursor en voer voor elke rij een INSERT IGNORE uit. Dwz:
DECLARE num1,num2 INT;
DECLARE done DEFAULT 0;
DECLARE mycursor CURSOR FOR SELECT # use the select above, im lazy here
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN mycursor;
my_loop: LOOP
FETCH mycursor INTO num1, num2;
IF done THEN
LEAVE my_loop;
END IF;
INSERT IGNORE INTO Smaller VALUES (num1,num2);
END LOOP;
Om je bijgewerkte vraag te beantwoorden, hoewel je niet helemaal zeker weet of je verbonden bedoelt door middel van relaties tussen unieke rijen (je zou twee kolommen nodig hebben om deze relatie op te slaan, dus het zou vrij gelijkaardig zijn). Of als je bedoelt dat je één tabel hebt met alle getallen, en een andere tweekolomstabel met relaties tussen de rijen van de eerste tabel.
Of, ten slotte, als je een tabel wilt met alleen strings met "1-2", "1-3" enz. Als dat het geval is, zou ik het als twee afzonderlijke kolommen houden en ze gewoon als strings uitvoeren met CONCAT wanneer je poll de tafel :)