create table posts (
id int,
post varchar(64)
);
insert into posts values (1, 'P1'), (2, 'P2');
create table tags (
id int,
tag varchar(64)
);
insert into tags values (1, 'T1'), (2, 'T1'), (3, 'T2');
create table post_tag (
post_id int,
tag_id int
);
insert into post_tag values (1, 1), (2, 2), (2, 3);
select * from post_tag;
update post_tag
join tags on tags.id = tag_id
join (
select tag, min(id) id from tags group by tag
) gtag on gtag.tag = tags.tag
set post_tag.tag_id = gtag.id;
select * from post_tag;
delete tags
from tags
join tags t2 on t2.tag = tags.tag and tags.id > t2.id
;
select * from tags;
create unique index tag_uq on tags(tag);