加入我有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
編輯爲這個問題添加解決方案 –