DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 ( ID int(11) NOT NULL auto_increment, NAME varchar(75) DEFAULT '' NOT NULL, LINK_ID int(11) DEFAULT '0' NOT NULL, PRIMARY KEY (ID), KEY NAME (NAME), KEY LINK_ID (LINK_ID) ); INSERT INTO t1 (ID, NAME, LINK_ID) VALUES (1,'Mike',0); INSERT INTO t1 (ID, NAME, LINK_ID) VALUES (2,'Jack',0); INSERT INTO t1 (ID, NAME, LINK_ID) VALUES (3,'Bill',0); CREATE TABLE t2 ( ID int(11) NOT NULL auto_increment, NAME varchar(150) DEFAULT '' NOT NULL, PRIMARY KEY (ID), KEY NAME (NAME) ); SELECT DISTINCT t2.id AS key_link_id, t2.name AS link FROM t1 LEFT JOIN t2 ON t1.link_id=t2.id GROUP BY t1.id ORDER BY link; drop table t1,t2;