【发布时间】:2018-06-18 16:17:35
【问题描述】:
我正在尝试创建 SQL 查询以获取具有某些条件的特定实体。问题是我有一些我想避免的重复实体。 我的数据表(表代表驱动程序)是:
我想找一些具有特定设施 ID/停车场 ID 条件的司机。 例如,如果我想要 ID 为“2”的设施中的所有司机,我想获得:
11112 Michael Smith
而不是:
11112 Michael Smith
11112 Michael Smith
我希望停车场 ID 和设施 ID 一起发生同样的事情。
我试过了:
SELECT * FROM "DRIVERS"
where facilityid = '2'
group by driverid
我得到了一个错误:
Could not execute 'SELECT * FROM "DRIVERS" where facilityid = '2' group by driverid'
invalid column name: The column 'DRIVERS.FIRSTNAME' is invalid in the select list because the GROUP BY clause or an aggregation function does not contain it: line 1 col 8 (at pos 7)
有什么想法吗? 谢谢!
【问题讨论】:
-
一般 GROUP BY 规则说:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须标识一个分组列或者是一个集合函数的参数。
-
不要使用
select *和group by -
改为
SELECT DISTINCT col1, col2, ...。 -
在 MySQL 中可以工作
标签: sql database select group-by datatables