Otoz z 3 tabel musze stworzyc jedna

Tabele: WPIS, RELACJA, KATEGORIA
W tabeli WPIS sa rekordu z nieuzupelnionym polem kategorii (category), natomiast tabela RELACJA zawiera relacje między rekordem z WPIS a KATEGORIĄ.
Napisałem sobie skrypt który uzupełni mi pole category w tabeli WPIS.
<?php ...polaczenie z baza... $zapytanie='Select id_pod,id_wpi from otwarty_relacje'; if ($num_rows != 0){ $wstawienie="update otwarty_wpisy set category='".$row[0]."'where id='".$row[1]."'"; ?>
I działa poprawnie gdyby nie mankament ze stara wersja pozwalala dla jedego rekordu przypisac (dzieki tabeli RELACJA) kilka kategorii. CZYLI w starej wersji mogło występować kilka id_wpis i każdemu mógł być przypisany inny id_pod.
W nowej wersji dla jednego id może być jeden id_pod.
I chodzi mi o to jak zmienić ten skrypt, że w przypadku kiedy wystąpi w petli kolejne takie samo id to nie zostanie przypisane w polu category nowe id_pod tylko najpierw zostanie skopiowany dany rekord, wstawiony w tabeli i dopiero w nim wstawione to nowe id_pod.
Czy da sie to w jakis prosty sposob zrobic, czy jednak bedzie szybciej jak zrobie to recznie?
A jeszcze pytanie, znalazlem taki kod:
INSERT INTO test (id, pole2, pole3 ...) SELECT id, pole2, pole3 ... FROM test WHERE id=100
Kod kopiuje mi dany rekord ale czy da sie jakos umiescic w tym kodzie aby ten nowy rekord mial wskazany przeze mnie nowy id?