2011-03-29 30 views
0

好吧我有問題。我有一個社交網站,並有一些代碼只會從朋友那裏調用狀態。我希望它調用朋友的狀態以及登錄用戶的身份。關於工會的問題

表:成員,朋友,狀態

成員 - 處理

朋友 - 用戶名,朋友

狀態 - 處理,類型(公共或朋友)

這裏是代碼,將顯示用戶朋友的最新狀態。

$shawing = "SELECT * FROM status JOIN friends ON status.Handle = friends.Friend where friends.Username='$members[Handle]' and status.Type='friends' ORDER by status.Id DESC" or print mysql_error();

$會員[拉手]調用由包括識別誰在登錄的用戶。

有人告訴我,一個聯盟的工作,但我只能夠使一個狀態顯示出來,我現在的代碼只有一個結果。

基本上,我想從人的朋友列表中獲取用戶名列表,並添加用戶登錄的用戶名,並僅顯示來自朋友部分的狀態與這些用戶名。

另外,如果我可以得到代碼的結構,那將是非常好的,因爲我是全新的JOIN和UNION。我明白了,當然,我只是不明白它是如何正確設置的。

+0

此外,我很有必要提一下,我在代碼之後有一段時間,並且它在其他情況下可以工作。 – Brad45 2011-03-29 00:20:59

+0

因爲我在努力學習自己? – Brad45 2011-03-29 00:24:05

+0

爲什麼你沒有告訴我們你實際上已經嘗試了什麼? http://dev.mysql.com/doc/refman/5.1/en/union.html – zerkms 2011-03-29 00:26:33

回答

1

您使用的UNION和JOIN越多,開始積累的開銷就越多。一旦您嘗試按10,000條記錄進行縮放,您將開始在服務器緩慢查詢日誌中看到此查詢。

我建議保持簡單並運行兩個查詢。
第一次查詢:獲取用戶狀態
第二查詢:獲取用戶好友狀態

第一個查詢應該是非常快,你最有可能使用的用戶的用戶ID(在表的主鍵,是嗎? )。最好的辦法是簡單地保持簡單。

+0

感謝您的建議,但是如何在不使用JOIN的情況下獲得用戶朋友的列表?我有兩個區域。公共區域工作正常,但Friendz區域是我正在處理的代碼。我不習慣JOIN或UNION,因爲我沒有使用過它們。 – Brad45 2011-03-29 00:35:28

+0

我已經有了這些表格,除了他們被稱爲成員和朋友。我只是不知道如何限制我的結果,只顯示用戶或他的朋友提交的狀態。 – Brad45 2011-03-29 01:06:01