0
我有這樣的情況,當我運行一個查詢:查詢不能顯示賬戶姓名和公司名稱如預期
ACCOUNT
-----------
account_id account_name
1 STARCLASS
2 STEPWAY
COMPANY
-----------
company_id company_account_id company_name
1 1 STORE 01
2 2 STORE 01
3 2 STORE 02
RESUME
-----------
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.00
QUERY
-----------
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最後一行的變量鏈接纔可ACCOUNT_NAME和COMPANY_NAME顯示爲空白。
有辦法解決? 關於這方面的任何提示?
謝謝大家的幫助
從「LEFT JOIN」加入的表中的「GROUP BY」列幾乎是不對的。所有與該列不匹配的行將具有相同的「NULL」值,因此它們將全部組合在一起。 – Barmar
爲什麼在不使用任何聚合函數時按'account_id'進行分組?這隻會從該組中的隨機行中選取其他列。 – Barmar
我無法重現該問題:http://www.sqlfiddle.com/#!9/cef05/1 – Barmar