2010-08-21 1 views
1
SELECT id,region FROM ads  
RIGHT JOIN (SELECT * FROM ads a2 WHERE a2.region=ads.region LIMIT 4) AS regions  
ON regions.id=ads.id 

Говорит «неизвестный раздел ads.region». Как получить доступ к области столбцов главной таблицы?Mysql доступ главный стол внутри правый присоединенный подзапрос

Мне нужно получить 4 строки для каждого региона

ответ

3

Использование:

SELECT a.id, 
      a.region 
     FROM ads a  
RIGHT JOIN (SELECT t.*, 
        CASE 
         WHEN @region = t.region THEN @rownum := @rownum + 1 
         ELSE @rownum := 1 
        END as rank, 
        @region := t.region 
       FROM ADS t 
       JOIN (SELECT @rownum := 0, @region := 1) r 
      ORDER BY t.region) b ON b.id = a.id 
           AND b.region = a.region 
           AND b.rank <= 4 
+0

Столбец «Идентификатор» в списке полей неоднозначна – Somebody

+0

@Beck: Я обновил его использовать 'Ā', но вы вы не указали никаких указаний, которые вы хотите. При необходимости измените ссылку на 'b'. –