У меня такая ситуация, когда я запускаю запрос:
ACCOUNT
-----------
account_id account_name
1 STARCLASS
2 STEPWAYCOMPANY
-----------
company_id company_account_id company_name
1 1 STORE 01
2 2 STORE 01
3 2 STORE 02RESUME
-----------
resume_id resume_company_id resume_start_date resume_end_date resume_total
1 1 2017-01-01 2017-01-31 300.00
2 2 2017-01-01 2017-01-31 147.00
3 3 2017-01-01 2017-01-31 50.00QUERY
-----------
SELECT *
FROM resume
LEFT JOIN company ON company_id = resume_company_id
LEFT JOIN account ON account_id = company_account_id
GROUP BY account_id
WHILE
-----------
while ($i < $num) {
.......
$account_name = mysql_result($result,$i,"account_name");
$company_name = mysql_result($result,$i,"company_name");
.......QUERY RESULTS
-----------
ID company_name account_name resume_start_date resume_end_date resume_total
1 STORE 01 STARCLASS 2017-01-01 2017-01-31 300.00
2 STORE 01 STEPWAY 2017-01-01 2017-01-31 147.00
3 **NOT SHOW COMPANY NAME** 2017-01-01 2017-01-31 50.00
**AND ACCOUNT NAME**
Когда я группирую по переменным последней строки ACCOUNT_ID, liks account_name и company_name отображаются пустыми.
Есть способ решить?
Любой совет по этому поводу?
Спасибо всем за помощь
Выражения, которые не передаются через агрегатную функцию, должны быть включены. Кроме того, я не уверен, какие версии программного обеспечения вы используете, но мои результаты включают только две строки.
Или
resume_total
) …. ГРУППА ПО account_id
).SELECT * FROM resume
все еще выполняется (3 записи, но только две записи значений для значений LEFT JOIN).Либо используйте ORDER BY, если вы хотите, чтобы список был в порядке, либо GROUP BY с выбранными выражениями или агрегатными функциями.
Других решений пока нет …