加入我有3个tabels以下定义Select查询语句中Postresql
people
------
- wid
- name
types
-----
- guid
- type
mapping
-------
- guid
- wid
百姓餐桌拥有人
的类型表中的每个类型信息列表排在人桌上。如果一个人属于多个类型,那么类型表中会出现两行。
映射表提供了人员和类型表之间的映射。
现在要找出谁是“政客”类型的人,我可以使用以下查询。
select name from people inner join
(mapping inner join types on mapping.guid = types.guid)
on people.wpid = mapping.wpid where types.type = 'politician'
但是现在我想知道政治家属于哪些类型。我知道我必须使用group by
和having
条款。但我无法想出这个问题。如何编写这个查询?
感谢。我想我和'group by'混淆了。顺便说一句,有可能避免'in'子查询?人tabel有大约200万行,这个查询可能太慢了:( – Sudar
编辑为这个问题添加解决方案 –