Php Can';I don’’我不知道该怎么办

Php Can';I don’’我不知道该怎么办,php,mysql,sql,function,Php,Mysql,Sql,Function,我似乎无法让一个组查询正常工作 我加入了以下表格: stud id | stud_name | ----------------- 1 | Class1 | 2 | Class2 | note id | stud_id | mat_id | Note | ------------------------------------------------ 1 | 1 | 1

我似乎无法让一个组查询正常工作

我加入了以下表格:

  stud
id | stud_name  |         
-----------------
1  | Class1     | 
2  | Class2     | 

  note
id | stud_id    |   mat_id       |   Note      | 
------------------------------------------------
1  | 1          |      1         |  10         | 
2  | 1          |      2         |  9          | 
3  | 1          |      1         |  10         |

mat
id | mat_name | 
----------------
1  | Porc     | 
2  | Vaca     |
以下是我为加入他们所做的

 SELECT
             `stud`.`id`
            , `mat`.`mat_name`
            , `note`.`note`

    FROM
            `stud`
   LEFT JOIN 
            `note` 
    ON
             (`stud`.`id` = `note`.`id_stud`)
   LEFT JOIN 
            `mat` 
        ON 
             (`note`.`id_mate` = `mat`.`id`) 
这是我希望他们看到的

mat.id  | mat_name | Note      | 
-----------------------------
1       | Porc     | 10,10     | 
2       | Vaca     | 9         |
这是他们的样子

mat.id  | mat_name | Note      | 
-----------------------------
1       | Porc     | 10        | 
2       | Vaca     | 9         | 
1       | Port     | 10        |
我试过这么做

 SELECT 
 `mat`.`mat_name`,
 GROUP_CONCAT(`note`.`note`) AS `note`.`note`,
FROM ( "Here is what I did to join them." )attr_groups
GROUP BY `mat`.`mat_name`;
ORDER BY `mat`.`mat_name`;
有什么想法吗


编辑:如果我添加分组依据或订单依据,则找不到任何结果。如果我不添加它们,查询会工作,但它不会连接它们。

您在分组依据中有错误

GROUP BY `mat`.`mat_name`;
------------------------^^^---
删除
来自查询

SELECT
     `stud`.`id`
    , `mat`.`mat_name`
    , GROUP_CONCAT(`note`.`note`) AS Note
FROM
    `stud`
LEFT JOIN 
    `note` 
ON
     (`stud`.`id` = `note`.`id_stud`)
LEFT JOIN 
    `mat` 
ON 
     (`note`.`id_mate` = `mat`.`id`) 
GROUP BY
    `stud`.mat_id
ORDER BY
    `mat`.`mat_name`
试试这个:

SELECT
    m.id,
    m.mat_name,
    GROUP_CONCAT(n.Note) as grades
FROM
    mat m
LEFT JOIN note n
    ON n.mat_id = m.id
GROUP BY
    m.id

您应该使用别名
attr_groups
(外部查询无法使用原始表),而不是使用原始表名限定所选列。但是,实际上您根本不需要子查询。编辑:这不是问题所在,但感谢您发现了它。我将查询定义为一个变量,因此我需要“;”作为结尾,很抱歉弄错了。好的。移除!试着回来。谢谢querry只是执行“die”:(@AcelasiEu你是什么意思?..它的结果是这样的:s stud_id 1 mat_name Matematica note 2,3,8,7,6,5,4,10,10但是它应该是这样的:stud id=1 mat_name proc note 10,10,然后应该有第二行:stud_id=1 mat_name=Vaca note 8,7会尝试回来的!谢谢如果我添加groupby或ORDER by,没有结果找到。如果我不添加它们,查询会工作,但不会连接它们。好的,谢谢!我将使用你的答案,这证明我在根据我的情况调整它时很愚蠢,这不是你的错。谢谢!谢谢大家的时间和帮助!
SELECT
    m.id,
    m.mat_name,
    GROUP_CONCAT(n.Note) as grades
FROM
    mat m
LEFT JOIN note n
    ON n.mat_id = m.id
GROUP BY
    m.id