у меня все работает отлично
тестовые таблицы:
CREATE TABLE `t1` (
`id` int(11) unsigned NOT NULL auto_increment,
`type` int(11) unsigned NOT NULL,
`t2id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t1` (`id`, `type`, `t2id`) VALUES
(1,1,1),
(2,2,1),
(3,3,1),
(4,1,2),
(5,2,3),
(6,1,3),
(7,3,4),
(8,4,5),
(9,1,5);
CREATE TABLE `t2` (
`id` int(11) unsigned NOT NULL auto_increment,
`xxx` char(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
INSERT INTO `t2` (`id`, `xxx`) VALUES
(1,\'c1\'),
(2,\'c2\'),
(3,\'c3\'),
(4,\'c4\'),
(5,\'c5\'),
(6,\'c6\');
Запрос:
SELECT `t2`.* FROM `t1`, `t2` WHERE `t2`.`id` = `t1`.`t2id` AND `t1`.`type` = 1;