2015-09-04 3 views
2

У меня есть два пользователя и запросы для таблиц. пользователи могут отправлять несколько запросов.Применить ограничение на таблицу соединений в mysql

MySQL Таблица схемы: -

CREATE TABLE `users` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `email` varchar(100) NOT NULL, 
    `password` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

CREATE TABLE `queries` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `address` text, 
    `city` varchar(100) NOT NULL, 
    `state` varchar(100) NOT NULL, 
    `zipcode` int(11) NOT NULL, 
    `created` datetime NOT NULL, 
    `modified` datetime NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

Я хочу, чтобы применить ограничение на него, что запрос выборки 5 запросов из таблицы запросов для каждого пользователя.

Как написать запрос для этого?

+0

SELECT * FROM 'queries', как QRY покинул присоединиться к' users' как USR на usr.id = qry.user_id предел 5 ===== Вы можете также использовать заказ пункт –

ответ

2

попробовать IT-

SELECT x.* 
FROM (SELECT t.user_id,t.id, 
       CASE 
       WHEN @category != t.user_id THEN @rownum := 1 
       ELSE @rownum := @rownum + 1 
       END AS rank, 
       @category := t.user_id AS var_category 
      FROM queries t 
      JOIN (SELECT @rownum := NULL, @category := '') r  
     ORDER BY t.user_id,t.id) X 
     WHERE x.rank<=5 
Смежные вопросы