2015-09-04 51 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

嘗試它 -

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