繁体   English   中英

查询表中具有不同值的ID

[英]Query table for id of distinct value

我有一个表,有时会重复多个值。 ex(1,'test',2,'test,3,'somevalue',4,'somevalue'等)

因此,基本上我想做的就是在表中查询所有不同的值及其ID。 我是sqlalchemy新手,似乎无法弄清楚该怎么做。

这就是我现在所拥有的:

reportTypes = DBSession.query(TDeviceType.sDeviceType).distinct()

其中sDeviceType是我的字符串值,ixDeviceType是我的ID。 但是,此查询仅返回不同的值。 有什么建议么? 我可以为每个值做一个循环并获取ID,但这似乎是一个坏主意

相当于我想做的事:

select distinct(sDeviceType), ixDeviceType  FROM TDeviceType

如果我正确理解了这个问题,则需要每个值的ID列表。 尽管在纯SQLAlchemy中可能有一种方法可以执行此操作,但在Python中似乎很简单。

reportTypes = {}

for id, value in DBSession.query(TDeviceType.ixDeviceType, TDeviceType.sDeviceType):
    reportTypes.setdefault(value, []).append(id)

print reportTypes  # looks like {'test': [1, 2], 'somevalue': [3, 4]}

每个键是不同的sDeviceType ,每个值是ixDeviceType的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM