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