2011-03-16 49 views
0

我有三個表:SQL查詢來獲取對連桿

  • 一個按項目名稱(項目)
  • 一個由人的姓名索引(參與者)
  • 一個鏈接索引成員到項目(每個項目的每個成員一行)(PROJPART)。

    人們可能並經常會成爲多個項目的成員。我需要一個SQL查詢(使用MySQL),它將列出所有已鏈接的項目對,因爲它們共享至少一個成員。這在SQL中可能嗎?如果是這樣,你能建議查詢的形式嗎?

+0

您是否正在尋找只是對????或甚至更多...說Proj A,Proj B,Proj C,Proj D都是相關聯的,或者A + B,A + C,A + D,B + C,B + D,C + D? – DRapp 2011-03-16 12:52:23

回答

0
select c.project_name, d.project_name 
from projpart a 
inner join projpart b 
    on a.memberid = b.memberid 
    and a.projectid < b.projectid 
inner join project c on c.projectid = a.projectid 
inner join project d on d.projectid = b.projectid 
0

內選擇將返回其成員超過1個項目。這些項目將被連接。

SELECT member_id,project FROM PROJECT, PROJPART WHERE 
     PROJPART.project_id= PROJECT.project_id AND 
     PROJPART.MEMBER IN 
     (SELECT MEMBER, SUM(1) FROM PROJPART 
     GROUP BY members 
     HAVING SUM(1)>1) 
     ORDER BY member_id 

我認爲這是不完全一樣的,你想要什麼,但它可以幫助你