2015-10-10 3 views
0

У меня есть проблема со следующим утверждением:MySQL подзапрос в выберите присоединиться

SELECT SUM(foreseen_charges.commonCharge) as required, foreseen_charges.flatsId 
LEFT JOIN (SELECT deposits.flatsId FROM deposits GROUP BY flatsId) deps 
ON foreseen_charges.flatsId = deps.flatsId 
FROM foreseen_charges GROUP BY foreseen_charges.flatsId 

И я всегда получаю эту ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN (SELECT deposits.flatsId FROM deposits GROUP BY flatsId) deps ON f' at line 2

Может кто-нибудь мне помочь?

С наилучшими пожеланиями, Cs

ответ

2

Помещенный ОТ Перед LEFT JOIN

SELECT SUM(foreseen_charges.commonCharge) as required, 
foreseen_charges.flatsId 
FROM foreseen_charges 
LEFT JOIN (
    SELECT deposits.flatsId 
    FROM deposits 
    GROUP BY flatsId 
) deps ON foreseen_charges.flatsId = deps.flatsId 
GROUP BY foreseen_charges.flatsId 
+0

вы можете указать, почему это работает, чтобы сделать ответ более полезным в целом, пожалуйста. –

+0

@ShawnMehan Это базовый Присоединиться. Я не думаю, что я должен объяснить, почему это работает, как w3school. – RubahMalam

+0

ну, вот что мы делаем здесь, на SO, помогите людям лучше кода. См. @redux для более общего полезного ответа, который ** уменьшает ** количество похожих вопросов в будущем, предполагая, что другие пользователи ищут и читают .... вздохи .... что представляет собой другую проблему. Несмотря на это, я не буду голосовать за вас, но OP должен переключить проверку на редуктивный ответ imho. –

1

Вы делаете вещи из строя. Общая структура:

SELECT (something) FROM table JOIN other-table ON table.var1=other-table.var2 WHERE situation 

Вы делаете это:

SELECT (something) LEFT JOIN table ON table.var1=other-table.var2 FROM other-table 

Вы не можете присоединиться, пока вы не объявили обе таблицы, и вы не можете связать другой стол, потому что вы еще Это еще не объявлено.

Неуверенный, что запрос предназначен для выполнения, но это должно исправить ошибку синтаксиса:

SELECT SUM(foreseen_charges.commonCharge) as required, foreseen_charges.flatsId 
FROM foreseen_charges 
LEFT JOIN (SELECT deposits.flatsId FROM deposits GROUP BY flatsId) deps 
ON foreseen_charges.flatsId = deps.flatsId 
GROUP BY foreseen_charges.flatsId 
Смежные вопросы