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

У меня такая ситуация, когда я запускаю запрос:

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 отображаются пустыми.

Есть способ решить?
Любой совет по этому поводу?

Спасибо всем за помощь

0

Решение

Выражения, которые не передаются через агрегатную функцию, должны быть включены. Кроме того, я не уверен, какие версии программного обеспечения вы используете, но мои результаты включают только две строки.

Или

  1. Вы имели в виду использовать ORDER BY, а не GROUP BY. GROUP BY в первую очередь предназначен для применения агрегата к «группе» строк (например, SELECT SUM (resume_total) …. ГРУППА ПО account_id).
  2. Ваш SQL (который не соответствует) создает ошибку, при которой результаты предложений LEFT JOIN группируются, а ваши SELECT * FROM resume все еще выполняется (3 записи, но только две записи значений для значений LEFT JOIN).
  3. Что-то другое.

Либо используйте ORDER BY, если вы хотите, чтобы список был в порядке, либо GROUP BY с выбранными выражениями или агрегатными функциями.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector