2010-12-17 34 views
0

我有用戶表 有ID場 和友誼表frienduserfriend1idfriend2id,根據誰發送給誰第一 和喜歡的請求表| | THREAD_ID - 用戶ID 我想從用戶選擇誰是我的朋友的人,喜歡的話題如何讓朋友誰喜歡我的話題

+0

我看到一些拼寫錯誤,那裏有'users'和'frienduser'等。 – Jakub 2010-12-17 20:12:31

+0

我無法編輯,但我認爲是'users'表。你是要求幫助與PHP或MySQL?無論哪種方式,需要更多的代碼 – piddl0r 2010-12-17 20:13:35

+0

看起來像一個純粹的mysql的東西,更多的架構將是很好的 – zanlok 2010-12-17 20:17:11

回答

2

這醜陋的部分是frienduser表既可以鏈接的事實ID。我認爲解決這個問題的最簡單方法就是與工會組織在一起。

/* Case 1: My ID is friend1id, my friend is friend2id */ 
select u2.* 
    from users u1 
     inner join frienduser f 
      on u1.id = f.friend1id 
     inner join users u2 
      on f.friend2id = u2.id 
     inner join likes l 
      on u2.id = l.userid 
    where u1.id = @MyUserId 
     and l.threadid = @MyThreadId 
union 
/* Case 2: My ID is friend2id, my friend is friend1id */ 
select u2.* 
    from users u1 
     inner join frienduser f 
      on u1.id = f.friend2id 
     inner join users u2 
      on f.friend1id = u2.id 
     inner join likes l 
      on u2.id = l.userid 
    where u1.id = @MyUserId 
     and l.threadid = @MyThreadId 
相關問題