Hey bubblenut! Nice to hear from you, and thanks for the help so far.
I may not have explained this or even mentioned it at all, but the problem with your query, is that it depends on the test_result entry existing, and existing without a test_id in it. I'm going to post the relevant schemas here in a minute, but, let me be a little plainer about what I am trying to do...
I need to find out, which users, haven't taken test #20. Test #20 is one of about 100 tests in the database. When they take the test, an entry is inserted into test_results, which then allows the program to see that they've taken it before. This entry sits alongside any other test entries that they have taken.
I need to be able to find out who does not have an entry for test #20, and get a list of their user data.
Here are the schemas, I hope this explanation was a little better.
CREATE TABLE `AT_members` (
`member_id` mediumint(8) unsigned NOT NULL auto_increment,
`login` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`website` varchar(200) NOT NULL default '',
`first_name` varchar(100) NOT NULL default '',
`last_name` varchar(100) NOT NULL default '',
`dob` date NOT NULL default '0000-00-00',
`gender` enum('m','f') NOT NULL default 'm',
`address` varchar(255) NOT NULL default '',
`postal` varchar(15) NOT NULL default '',
`city` varchar(50) NOT NULL default '',
`province` varchar(50) NOT NULL default '',
`country` varchar(50) NOT NULL default '',
`phone` varchar(15) NOT NULL default '',
`status` tinyint(4) NOT NULL default '0',
`preferences` text NOT NULL,
`creation_date` datetime NOT NULL default '0000-00-00 00:00:00',
`language` varchar(5) NOT NULL default '',
`inbox_notify` tinyint(3) unsigned NOT NULL default '0',
`location_code` varchar(25) default NULL,
`supervisor_name` varchar(80) default NULL,
`sup_id` varchar(10) default NULL,
`sup_email` varchar(100) default NULL,
`source_code` varchar(25) default NULL,
`start_date` varchar(20) default NULL,
`hr_rep_name` varchar(100) default NULL,
`hr_mgr_name` varchar(100) default NULL,
`assignment_status` varchar(100) default NULL,
PRIMARY KEY (`member_id`),
UNIQUE KEY `login` (`login`)
) TYPE=MyISAM;
CREATE TABLE `AT_tests_results` (
`result_id` mediumint(8) unsigned NOT NULL auto_increment,
`test_id` mediumint(8) unsigned NOT NULL default '0',
`member_id` mediumint(8) unsigned NOT NULL default '0',
`date_taken` datetime NOT NULL default '0000-00-00 00:00:00',
`final_score` char(5) NOT NULL default '',
PRIMARY KEY (`result_id`),
KEY `test_id` (`test_id`)
) TYPE=MyISAM;
Here's hoping this will help a bit.
Thanks again!