У меня есть
card_type
таблицу, в которой естьcard_id
являетсяauto_increment
ключ иcardtpe
являетсяprimary key
. Другая таблица которая у меня естьactivities
стол.columns
в действии Таблица :activity_id
сauto_increment
ключ иactivity
столбец сprimary key
. Третья таблица -actual_alldetails
стол. Столбы вactual_alldetails
:id
сauto_increment
ключ и(emp_code,activity_id,card_id)
столбец сcomposite key
. Четвертый стол составляетemployee
Таблица и столбцы в этой таблице:emp_code
сprimary key
иemp_name
.как сделать внутреннее соединение с композитным ключом
Когда я пытаюсь выполнить один из моего запроса: -
SELECT i.*,
d.Date,
a.in_time,
a.out_time,
SEC_TO_TIME(SUM(TIME_TO_SEC(a.out_time))-(TIME_TO_SEC(a.in_time))) AS duration,
c.cardtype,
a.wo,
v.activity,
a.quty,
a.wastage,
a.mcusage,
a.actual_wastage
FROM employee_details i
INNER JOIN actual_alldetails a ON i.emp_code=a.emp_code
INNER JOIN attendance_date d ON d.date_id=a.date_id
INNER JOIN card_type c ON c.card_id=a.card_id
INNER JOIN activities v ON v.activity_id=a.activity_id
WHERE d.Date='2016-01-30'
ORDER BY v.activity;
Он показывает мне ошибку, как:
Mixing столбцов GROUP (MIN(), MAX(), COUNT(), ...) без столбцов GROUP является незаконным, если нет предложения GROUP BY.
Я не понимаю, почему это покажет мне такую ошибку. Это потому, что я делаю внутреннее соединение с одним основным ключом и одним составным ключом? Если мое предсказание правильно, то каков правильный запрос для этого? Пожалуйста, помогите мне решить эту проблему.