使用左连接连接表时如何正确查询 group by
Posted
技术标签:
【中文标题】使用左连接连接表时如何正确查询 group by【英文标题】:How correct query for group by when joining table using left join 【发布时间】:2015-05-22 05:01:40 【问题描述】:此查询不断返回错误:
不是 GROUP BY 表达式
有人可以帮我更正我的查询吗?我不擅长加入表格。
select distinct(nama), namabapa, data_saranabapa.nokpbapa, namaibu, data_saranaibu.nokpibu
from ((data_semua_murid
left join data_saranabapa on data_semua_murid.nokpbapa=data_saranabapa.nokpbapa)
left join data_saranaibu on data_semua_murid.nokpibu=data_saranaibu.nokpibu)
where kodsekolah='WBA0002'
group by namabapa
order by namabapa asc
【问题讨论】:
您需要按以下方式分组:nama,namabapa, data_saranabapa.nokpbapa, namaibu, data_saranaibu.nokpibu ....查看此帖子::***.com/questions/13962772/… 谢谢大佬.. 解决了! DISTINCT 不是列上的函数,它适用于整个选定的行。选择不同的(nama),namabapa... eq 选择不同的 nama,namabapa... eq 选择不同的 nama,(namabapa)... 这是哪个 dbms?一般的 GROUP BY 规则说:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须要么标识一个分组列,要么是一个集合函数的参数。 【参考方案1】:您必须按您在查询中选择的所有列进行分组
select distinct(nama), namabapa, data_saranabapa.nokpbapa, namaibu, data_saranaibu.nokpibu
from ((data_semua_murid
left join data_saranabapa on data_semua_murid.nokpbapa=data_saranabapa.nokpbapa)
left join data_saranaibu on data_semua_murid.nokpibu=data_saranaibu.nokpibu)
where kodsekolah='WBA0002'
group by nama, namabapa, data_saranabapa.nokpbapa, namaibu, data_saranaibu.nokpibu
order by namabapa asc
【讨论】:
以上是关于使用左连接连接表时如何正确查询 group by的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 group_concat 和左连接计算 mysql 查询的结果
当涉及两个以上的表时,如何将来自相似字段的单个表的两个左连接转换为 LINQ? [复制]