我有三個表,說:,PostgreSQL的查詢涉及三個表
(1)名稱:組
列:GID,組名
(2)名稱:配置文件
列: profileid,profname
(3)名稱:團隊簡介
列:gid,profileid - 對應於前面表中的列
現在,假設我有一個profileid的數組,我想構造一個查詢,它在GroupsProfiles中查找相應的gid,然後在Groups中查找相應的組名。
我一直在玩連接和東西,但沒有完全得到我想要的。有任何想法嗎?
我有三個表,說:,PostgreSQL的查詢涉及三個表
(1)名稱:組
列:GID,組名
(2)名稱:配置文件
列: profileid,profname
(3)名稱:團隊簡介
列:gid,profileid - 對應於前面表中的列
現在,假設我有一個profileid的數組,我想構造一個查詢,它在GroupsProfiles中查找相應的gid,然後在Groups中查找相應的組名。
我一直在玩連接和東西,但沒有完全得到我想要的。有任何想法嗎?
使用JOIN(與你關心的配置文件ID替換your_profile_id):
SELECT p.profileid
, g.gid
, g.GroupName
FROM Groups g
, Profiles p
, GroupsProfiles gp
WHERE g.gid = gp.gid
AND p.profileid = gp.profileid
AND p.profileid = your_profile_id
你會運行此查詢的每個配置文件ID。如果您想要獲取所有配置文件或配置文件子集的信息,則可以刪除your_profile_id上的條件,或者如果您知道需要哪些條目,也可以使用IN子句。
SELECT g.gid
, g.GroupName
FROM Groups g
, Profiles p
, GroupsProfiles gp
WHERE g.gid = gp.gid
AND p.profileid = gp.profileid
AND p.profileid IN (profile_id_1, profile_id_2, ... ,profile_id_N)
非常感謝。 – tomh 2010-07-23 13:31:08
你可以顯示你已有的東西嗎? – pascal 2010-07-23 13:20:55