Есть две таблицы – с основной и дополнительной информацией.
Для постраничного вывода необходимо выбрать информацию об записях их определенного диапазона. В то время, как LIMIT применяется ко всем выбранным записям, в 
Например:
CREATE TABLE users (
  id_user smallint(3) unsigned NOT NULL default \'0\',
  login varchar(50) NOT NULL default \'\',
  pass varchar(50) NOT NULL default \'\'
) TYPE=MyISAM;
INSERT INTO users VALUES (1, \'log1\', \'pas1\');
INSERT INTO users VALUES (2, \'log2\', \'pas2\');
INSERT INTO users VALUES (3, \'log3\', \'pas3\');
CREATE TABLE info (
  id_user smallint(3) unsigned NOT NULL default \'0\',
  name varchar(50) NOT NULL default \'\',
  value varchar(50) NOT NULL default \'\'
) TYPE=MyISAM;
INSERT INTO info VALUES (1, \'tel\', \'23423423\');
INSERT INTO info VALUES (2, \'tel\', \'03\');
INSERT INTO info VALUES (1, \'email\', \'log1@domen.com\');
INSERT INTO info VALUES (3, \'icq\', \'2\');
INSERT INTO info VALUES (3, \'email\', \'qqq\');
INSERT INTO info VALUES (3, \'tel\', \'03\');
INSERT INTO info VALUES (3, \'icq\', \'4\');
INSERT INTO info VALUES (3, \'icq\', \'5\');
SQL-запрос:
SELECT * 
FROM users
JOIN info
USING ( id_user )
результат: 
id_user  |  login  |  pass  |  id_user  |  name  |  value  
------------------------------------------------
1 |  log1 |  pas1 |  1 |  tel  | 23423423 
2  | log2 |  pas2 |  2 |  tel  | 03 
1  | log1 |  pas1 |  1 |  email  | log1@domen.com 
3  | log3 |  pas3 |  3 |  icq  | 2 
3  | log3  | pas3 |  3 |  email  | qqq 
3  | log3 |  pas3 |  3 |  tel  | 03 
3  | log3 |  pas3  | 3 |  icq |  4 
3 |  log3 |  pas3  | 3 |  icq  | 5
То есть LIMIT 0,5 выбирает значения с 0 по 5. А надо пользователей и информацию о них с 0 до 5.
Как это можно обойти?
Или, быть может, можно выбрать информацию в виде
1 |  log1 |  pas1 |  1 |  tel  | 23423423  |  email  | log1@domen.com  |  icq |  4
то есть чтоб каждому пользователю соответствовала одна строка в выборке?