I'd have to assume that no matching values exist in the tables' respective primary key columns.
mysql> create database testing;
Query OK, 1 row affected (0.02 sec)
mysql> use testing;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> create table foo (id int);
Query OK, 0 rows affected (0.00 sec)
mysql> create table bar (id int);
Query OK, 0 rows affected (0.00 sec)
mysql> create table baz (id int);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into foo values (1), (2), (3);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into bar values (4), (5), (6);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into baz select a.* from foo a join bar b on a.id = b.id;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into bar values (1), (2);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> insert into baz select a.* from foo a join bar b on a.id = b.id;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql>
select *(without theinsert) output? – Phil Nov 23 '12 at 12:47