Database
CREATE TABLE IF NOT EXISTS `author` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `author` (`id`, `name`) VALUES (1, 'HiO'), (2, 'Blu'), (3, 'Pouet'); CREATE TABLE IF NOT EXISTS `post` ( `a_id` INT(10) UNSIGNED DEFAULT NULL, `title` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `post` (`a_id`, `title`) VALUES (1, 'My name is HiO :)'), (NULL, 'I am an anonymous :)'), (2, 'My name is Blu :D'), (3, 'My name is Pouet ><''');
INNER JOIN
SELECT * FROM `post` INNER JOIN author ON post.a_id = author.id
Result
$post = array( array('a_id'=>'1','title'=>'My name is HiO :)','id'=>'1','name'=>'HiO'), array('a_id'=>'2','title'=>'My name is Blu :D','id'=>'2','name'=>'Blu'), array('a_id'=>'3','title'=>'My name is Pouet ><\'','id'=>'3','name'=>'Pouet') );
LEFT JOIN
SELECT * FROM `post` LEFT JOIN author ON post.a_id = author.id
Result
$post = array( array('a_id'=>'1','title'=>'My name is HiO :)','id'=>'1','name'=>'HiO'), array('a_id'=>NULL,'title'=>'I am an anonymous :)','id'=>NULL,'name'=>NULL), array('a_id'=>'2','title'=>'My name is Blu :D','id'=>'2','name'=>'Blu'), array('a_id'=>'3','title'=>'My name is Pouet ><\'','id'=>'3','name'=>'Pouet') );
RIGHT JOIN
SELECT * FROM `author` RIGHT JOIN post ON author.id = post.a_id
Result
$author = array( array('id'=>'1','name'=>'HiO','a_id'=>'1','title'=>'My name is HiO :)'), array('id'=>NULL,'name'=>NULL,'a_id'=>NULL,'title'=>'I am an anonymous :)'), array('id'=>'2','name'=>'Blu','a_id'=>'2','title'=>'My name is Blu :D'), array('id'=>'3','name'=>'Pouet','a_id'=>'3','title'=>'My name is Pouet ><\'') );