JOINs Across Three or More Tables
mysql> mysql> mysql> CREATE TABLE titles ( -> titleID int(11), -> title varchar(100), -> subtitle varchar(100), -> edition tinyint(4), -> publID int(11), -> catID int(11), -> langID int(11), -> year int(11), -> isbn varchar(20), -> comment varchar(255), -> ts timestamp, -> authors varchar(255), -> PRIMARY KEY (titleID) -> ); Query OK, 0 rows affected (0.01 sec) mysql> mysql> mysql> mysql> INSERT INTO titles VALUES (1,'Linux','Installation',5,1,57,2,2000,NULL,NULL,'2005-02-28 13:34:21','Michael'), -> (2,'Excel',NULL,NULL,2,3,NULL,2000,NULL,NULL,'2005-02-28 13:34:22','David'), -> (3,'XML',NULL,NULL,1,2,NULL,1997,NULL,NULL,'2005-02-28 13:34:22','Edwards'), -> (4,'PHP',NULL,NULL,3,6,NULL,2000,NULL,NULL,'2005-02-28 13:34:22','Tom'), -> (5,'MySQL','',0,3,34,NULL,2000,'','','2005-02-28 13:34:22','Paul'), -> (6,'Java',NULL,NULL,4,34,NULL,1999,NULL,NULL,'2005-02-28 13:34:22','Tim'); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> mysql> CREATE TABLE rel_title_author ( -> titleID int(11), -> authID int(11), -> ts timestamp , -> PRIMARY KEY (titleID,authID) -> ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> mysql> INSERT INTO rel_title_author VALUES (1,1,'2004-12-02 18:37:09'), -> (2,1,'2004-12-02 18:37:09'), -> (2,2,'2004-12-02 18:37:09'), -> (3,3,'2005-02-24 10:46:37'), -> (3,4,'2005-02-24 10:46:37'), -> (3,5,'2005-02-24 10:46:37'), -> (4,6,'2004-12-02 18:37:09'); Query OK, 7 rows affected (0.00 sec) Records: 7 Duplicates: 0 Warnings: 0 mysql> mysql> mysql> CREATE TABLE authors ( -> authID int(11) NOT NULL auto_increment PRIMARY KEY , -> authName varchar(60), -> ts timestamp -> ); mysql> mysql> mysql> mysql> mysql> INSERT INTO authors VALUES (1,'Tom','2004-12-02 18:36:51'), -> (2,'Jack','2004-12-02 18:36:51'), -> (3,'Jane','2004-12-02 18:36:51'), -> (4,'Amy','2004-12-02 18:36:51'), -> (5,'Bob','2004-12-02 18:36:51'), -> (6,'Race','2004-12-02 18:36:51'), -> (7,'Green','2004-12-02 18:36:51'); mysql> mysql> mysql> SELECT title, authName -> FROM titles, rel_title_author, authors -> WHERE titles.titleID = rel_title_author.titleID -> AND authors.authID = rel_title_author.authID -> ORDER BY title; +-------+----------+ | title | authName | +-------+----------+ | Excel | Tom | | Excel | Jack | | Linux | Tom | | PHP | Race | | XML | Jane | | XML | Amy | | XML | Bob | +-------+----------+ 7 rows in set (0.00 sec) mysql> mysql> mysql> drop table titles; Query OK, 0 rows affected (0.00 sec) mysql> drop table rel_title_author; Query OK, 0 rows affected (0.00 sec) mysql> drop table authors; Query OK, 0 rows affected (0.00 sec)