2016-04-28 6 views
0

У меня есть следующий запрос я пытаюсь соединить 2 таблицы («Промышленность», „Страна“) на 2-х условиях, но это дает мне следующую ошибкуMySQL: JOIN несколько таблиц

Код ошибки: 1054 Неизвестная колонна «i.id» в «on»

Кто-нибудь знает, как мне это решить?

SELECT c.name AS country_name, i.name as industry_name, num_projects, num_consultants, admin_rating 
    FROM industry i, country c 
    JOIN (SELECT pc.country_id, pi.industry_id, COUNT(p.id) AS num_projects 
      FROM  project p, project_country pc, project_industry pi 
      where p.id = pc.project_id and pi.project_id=p.id 
      GROUP BY pc.country_id,pi.industry_id) x ON x.country_id = c.id and x.industry_id=i.id 
    JOIN (SELECT u.country_id,ie.industry_id, COUNT(u.id) AS num_consultants 
      FROM  user u, consultant_profile, industry_experience ie 
      WHERE u.is_active = 1 AND u.type = 0 and 
        ie.consultant_profile_id= consultant_profile.id 
        and u.id= consultant_profile.id 
      GROUP BY u.country_id,ie.industry_id) y ON y.country_id = c.id and y.industry_id = i.id order by num_projects DESC limit 20; 

EDIT структура таблицы выглядит следующим образом:

  • промышленности - ID
  • project_industry - industry_id, PROJECT_ID
  • industry_experience - consultant_profile_id, industry_id
  • consultant_profile - идентификатор, user_id
+0

'индустрия' стол столбец' id'? – Sadikhasan

+0

У вас есть имя столбца, называемое идентификатором в отраслевой таблице – Mujahidh

+0

, можете ли вы разместить столбцы столбцов в отрасли? – Mujahidh

ответ

1

Поскольку вы до сих пор не представили какую-либо SQL скрипки вы можете начать с моих одного:

http://sqlfiddle.com/#!9/6c0569/1

SELECT pc.country_id, pi.industry_id, 
    COUNT(p.id) AS num_projects, 
    COUNT(u.id) AS num_consultants 
    FROM project p 
INNER JOIN project_country pc 
ON p.id = pc.project_id 
INNER JOIN project_industry pi 
ON pi.project_id=p.id 
INNER JOIN `user` u 
ON u.is_active = 1 AND u.type = 0 
    and u.country_id = pc.country_id 
INNER JOIN industry_experience ie 
ON u.id = ie.consultant_profile_id 
    AND ie.industry_id = pi.industry_id 
GROUP BY pc.country_id, pi.industry_id 

, если вы будете добавлять некоторые данные в том, что скрипка мы можем обсудить более подробно

Смежные вопросы