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