Mysql access main table inside right joined subquery

岁酱吖の 提交于 2019-12-11 04:18:17

问题


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

Says "unknown column ads.region". How to access main table column region?

I need to fetch 4 rows for each region


回答1:


Use:

    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


来源:https://stackoverflow.com/questions/3537987/mysql-access-main-table-inside-right-joined-subquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!