well, i do know what your problem is exactly, all the time, as old pedant do, do nnt doubt of that at all (-: But you are forcing it all the time in the wrong way. Wrong way is not having any index on source tables, and you don't want to hear that or you don't understand what index is all about.
This is how your merged table should be:
CREATE TABLE `merged` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`product_id` INT(11) NOT NULL,
`user_id` INT(5) NOT NULL,
`date` DATETIME NOT NULL,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`phone` VARCHAR(100) NOT NULL,
`address` VARCHAR(255) NOT NULL,
`city` VARCHAR(255) NOT NULL,
`state` VARCHAR(255) NOT NULL,
`cp` VARCHAR(100) NOT NULL,
`text` TEXT NOT NULL,
`userfile` VARCHAR(255) NOT NULL,
`layout` VARCHAR(255) NOT NULL,
UNIQUE INDEX `Index 1` (`id`)
As you described it in last post , merged table shoud have key on all fields
, and since tere are so many fields that is bad all together, furthermore mysql will not let you do that:
ALTER TABLE `merged`
ADD INDEX `Index 2` (`address`, `city`, `state`, `phone`, `product_id`, `date`, `cp`, `text`(100), `userfile`, `name`, `layout`, `user_id`, `email`);
will pop up:
SQL Error (1071): Specified key was too long; max key length is 1000 bytes
So to be able to make key ona all fields you should try to downsize them, but ,for sure ,that will lead to nowhere.
Without key,you can do it programticaly with application, but that would be 'super dumb'.
bottom line, decide which fields are necessary for key, if I ignore all the rest.
Not to mention, the table of yours should be splitted into two tables at least,
I mean what is product_id doing in students table at all .