Mysql 光滑计数(.length/.size)不';I don’我没有按预期工作
我使用下面的代码来实现SQL语句 SQL:Mysql 光滑计数(.length/.size)不';I don’我没有按预期工作,mysql,scala,slick,Mysql,Scala,Slick,我使用下面的代码来实现SQL语句 SQL: SELECT device.*, COUNT(unit.id) AS cnt FROM device LEFT JOIN unit ON device.id = unit.device_id GROUP BY device.id; def devicesWithUnitCount = for { (device, unit) <- TableQuery[TDDevice] joinLeft TableQuery[TDUnit]
SELECT device.*, COUNT(unit.id) AS cnt
FROM device LEFT JOIN unit ON device.id = unit.device_id GROUP BY device.id;
def devicesWithUnitCount = for {
(device, unit) <- TableQuery[TDDevice] joinLeft TableQuery[TDUnit]
on (_.id === _.deviceID)
groupBy (_._1)
} yield (device, unit.size)
斯卡拉滑溜:
SELECT device.*, COUNT(unit.id) AS cnt
FROM device LEFT JOIN unit ON device.id = unit.device_id GROUP BY device.id;
def devicesWithUnitCount = for {
(device, unit) <- TableQuery[TDDevice] joinLeft TableQuery[TDUnit]
on (_.id === _.deviceID)
groupBy (_._1)
} yield (device, unit.size)
def devicesWithUnitCount=for{
(设备、装置)请参阅Slick文档,其中说明:
groupBy调用后面必须跟一个map调用
所以我想这会对你有好处:
def devicesWithUnitCount = (
TableQuery[TDDevice] joinLeft TableQuery[TDUnit]
on (_.id === _.deviceID) )
.groupBy (_._1)
.map{ case (grouped, all) => (grouped, all.map(_._2).size) }