2012-03-11 175 views
0

我對MySQL有點新,並試圖通過我的手來學習它。不過,我遇到了一個查詢如下: 我有2個表:表1包含用戶創建的列表的詳細信息。這些字段是listid,listname,creatorid,createdat,membercount; 表2存儲每個列表成員的數據:字段是listid,userid;MySQL查詢:查找相關屬性

我需要處理的查詢如下:找出滿足以下兩個條件的所有形式的用戶對(u1,u2) i。 u1已創建至少一個列表,並且u2是該列表的成員。二, u2創建了至少一個列表,並且u1是該列表的成員。

注:表2 listid是listid表1

+0

@Luiggi我已經能夠使用INNER JOIN從兩個表中選擇所需的屬性,但是不知道在WHERE子句之後使用什麼條件來獲取所需的元組。 – ritz 2012-03-11 11:51:37

+0

你瞭解了嵌套查詢嗎?他們有這樣的形式:'從表t1選擇t1.a,t3.b,(從t2選擇c,其中t2.a = t1.a)t3其中t3.c = t1.c'。 – 2012-03-11 11:56:33

+0

@LuiggiMendoza我的實際查詢由2部分組成(參見編輯的問題)。對於第一部分Niko的解決方案是好的。但是,當我嘗試使用嵌套查詢兩部分我陷入困境。 – ritz 2012-03-11 13:25:21

回答

2

這個怎麼樣外鍵?

SELECT l.creatorid AS u1, u.userid AS u2 
FROM table2 AS u 
INNER JOIN table1 AS l ON l.listid = u.listid 

從Table2返回每個用戶和相應列表的創建者的ID。

+0

他需要列表創建者的ID和該列表中成員的用戶的ID。 – 2012-03-11 11:53:40

+0

是的,這正是這個查詢選擇的內容。 – Niko 2012-03-11 11:54:42

+0

如果您將user1作爲list1和user2的創建者作爲list1的成員,而table2具有user1,user2和user3,該怎麼辦? – 2012-03-11 11:57:30