Hi guys!

I am trying to select all users from a database, whilst also selecting 2 additional fields from 2 seperate tables.

The query I am using is this...However, it only returns 4,000 rows, when there are over 20,000 rows in the users table.

PHP Code:
SELECT users.*, locations.locationsNameuserscv.cvFile 
FROM users 
LEFT JOIN locations ON locations
.locationsId users.usersLocationId 
INNER JOIN userscv ON userscv
.usersId users.usersId 
GROUP BY users
.usersId 
Here are the tables:

PHP Code:
CREATE TABLE IF NOT EXISTS `users` (
  `
usersIdint(11NOT NULL auto_increment,
  `
usersNamevarchar(100character set utf8 NOT NULL default '',
  `
usersAddress1varchar(100character set utf8 default NULL,
  `
usersAddress2varchar(100character set utf8 default NULL,
  `
usersStateIdint(11) default '0',
  `
usersLocationIdint(11) default '0',
  `
usersCountryIdint(11) default '0',
  `
usersZipvarchar(20character set utf8 default NULL,
  `
usersUsernamevarchar(100character set utf8 NOT NULL default '',
  `
usersPasswordvarchar(100character set utf8 NOT NULL default '',
  `
usersEmailvarchar(100character set utf8 NOT NULL default '',
  `
usersTownvarchar(100character set utf8 default NULL,
  `
usersDobdate default NULL,
  `
usersGenderenum('NA','Male','Female'character set utf8 default 'NA',
  `
usersWorkPhonevarchar(35character set utf8 default '0',
  `
usersMobilePhonevarchar(35character set utf8 NOT NULL default '0',
  `
usersHomePhonevarchar(35character set utf8 NOT NULL default '0',
  `
usersAllowCVSearchtinyint(11NOT NULL default '1',
  `
usersCVTextlongtext character set utf8 NOT NULL,
  `
usersLastUpdateddate NOT NULL default '0000-00-00',
  `
usersMailingListenum('yes','no'character set utf8 NOT NULL default 'yes',
  `
usersCvMatchingenum('yes','no'character set utf8 NOT NULL default 'yes',
  
PRIMARY KEY  (`usersId`),
  
KEY `usersCvMatching` (`usersCvMatching`),
  
FULLTEXT KEY `usersCVText` (`usersCVText`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34893 ;

CREATE TABLE IF NOT EXISTS `userscv` (
  `
cvIdint(10unsigned NOT NULL auto_increment,
  `
cvNamevarchar(250) default NULL,
  `
cvDatedatetime default NULL,
  `
cvFilevarchar(150) default NULL,
  `
usersIdint(10unsigned default NULL,
  `
usersCVTextlongtext,
  `
usersAllowCVSearchtinyint(11unsigned default '1',
  `
Statusvarchar(45) default 'active',
  
PRIMARY KEY  (`cvId`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=11462 ;

CREATE TABLE IF NOT EXISTS `locations` (
  `
locationsIdint(11NOT NULL auto_increment,
  `
locationsNamevarchar(255NOT NULL default '',
  `
locationsStatusvarchar(45) default 'active',
  
PRIMARY KEY  (`locationsId`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=69