Let me just be bored ...
CREATE TABLE `people` ( `id` int(11) NOT NULL, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; CREATE TABLE `goods` ( `id` int(11) NOT NULL, `name` varchar(50) DEFAULT NULL, `class_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; CREATE TABLE `goods_owned` ( `people_id` INT(11) DEFAULT NULL, `goods_id` INT(11) DEFAULT NULL ) ENGINE=MYISAM CHARSET=latin1 ; CREATE TABLE `classes` ( `id` int(11) NOT NULL, `class_name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; INSERT INTO `people` (`id`, `name`) VALUES('1','John'); INSERT INTO `people` (`id`, `name`) VALUES('2','Mike'); INSERT INTO `people` (`id`, `name`) VALUES('3','Sam'); INSERT INTO `people` (`id`, `name`) VALUES('4','Andy'); INSERT INTO `classes` (`id`, `class_name`) VALUES('1','Food'); INSERT INTO `classes` (`id`, `class_name`) VALUES('2','Trans'); INSERT INTO `classes` (`id`, `class_name`) VALUES('3','Habitation'); INSERT INTO `goods` (`id`, `name`, `class_id`) VALUES('1','Sugar','1'); INSERT INTO `goods` (`id`, `name`, `class_id`) VALUES('2','Salt','1'); INSERT INTO `goods` (`id`, `name`, `class_id`) VALUES('3','Boat','2'); INSERT INTO `goods` (`id`, `name`, `class_id`) VALUES('4','House','3'); INSERT INTO `goods` (`id`, `name`, `class_id`) VALUES('5','Car','2'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('1','1'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('1','4'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('1','3'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('2','2'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('2','5'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('3','1'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('3','5'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('3','2'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('4','5'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('4','3'); INSERT INTO `goods_owned` (`people_id`, `goods_id`) VALUES('4','4'); SELECT people.name , goods.name , classes.class_name FROM people LEFT JOIN goods_owned ON (people.id = goods_owned.people_id) LEFT JOIN goods ON (goods_owned.goods_id = goods.id) LEFT JOIN classes ON (goods.class_id = classes.id) WHERE classes.id = 1 ORDER BY people.name; ;