2015-11-09 2 views
1

Я просто хочу знать, сколько проводов связано с id из таблицы emp, и я не могу это найти. Я хочу получить все поля emp fields +, называемые totalProducts, с количеством связанных строк с идентификатором так, как я могу это сделать? Я пытаюсь это сделать и не работает:Присоединиться + подсчитать по второй таблице

select emp.*, 
     COUNT(prod.*) AS totalProducts 
from emp_fin emp 
     JOIN product2 prod on emp.id = prod.id_emp group by emp.id; 

Получение ошибки: у вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с * *).

Спасибо всем!

+0

Я думаю, вы просто хотите 'count (*)'. Вы не используете псевдонимы с 'count (*)'. –

+0

, но действительно ли (*) знаю, что я имею в виду таблицу prod? –

ответ

1

если вы хотите посчитать все в записях prod, выберите id_emp (или другое поле notnull) таблицы toe prod для их подсчета.

SELECT 
    emp.*, 
    COUNT(prod.id_emp) AS totalProducts 
FROM emp_fin emp 
LEFT OUTER JOIN product2 prod 
    on emp.id= prod.id_emp 
group by emp.id 
+2

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – gunr2171

2

Не использовать псевдонимы с count(*):

select emp.*, COUNT(*) AS totalProducts 
from emp_fin emp JOIN 
    product2 prod 
    on emp.id = prod.id_emp 
group by emp.id; 

Если вы хотите включить, без фамилии которых продукты, использовать left join и сделать подсчет, как это:

select emp.*, count(prod.id_emp) AS totalProducts 
from emp_fin emp left join 
    product2 prod 
    on emp.id = prod.id_emp 
group by emp.id; 
+0

upvote для двух секунд быстрее :-) – silly

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