Derek, I was able to replicate all the behaviors you describe in 5.0.21.
I noticed you have a signed INT in one table and an UNsigned INT in
the other. I changed t1 to UNsigned and then the query returns the
results you would expect:
+---+
| course_id |
+---+
|-2 |
|
Can someone tell me what's wrong with this test:
create table t1 ( course_id int(10) signed not null, primary key
(course_id) );
create table t2 ( course_id int(10) unsigned not null, primary key
(course_id) );
insert into t1 values
(1),(-1),(-2),(2),(3),(4),(5),(6),(7),(8),(65),(66),(67),(68