关于工会的问题

时间:2011-03-29 00:17:26

标签: php mysql

好的,我遇到了问题。我有一个社交网站,并有一些代码,只会从朋友那里调用状态。我希望它可以调用来自朋友和登录用户的状态。具体的Facebook方式。

表:成员,朋友,状态

成员 - 处理

朋友 - 用户名,朋友

状态 - 句柄,类型(公共或朋友)

以下代码将显示用户朋友的最新状态。

$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();

$ members [Handle]来自include的调用,用于标识登录的用户。

有人告诉我一个联盟会工作,但我只能出现一个状态,而我现在的代码只有一个结果。

基本上,我想从用户的朋友列表中获取用户名列表,并添加用户登录的用户名,并仅显示来自朋友部分的状态和这些用户名。

此外,如果我能获得代码的结构,那将是很好的,因为我是整个JOIN和UNION的新手。我理解,当然,我只是不明白它是如何正确设置的。

1 个答案:

答案 0 :(得分:1)

您使用的UNION和JOIN越多,开始累积的开销就越大。一旦你尝试将这个记录扩展到10,000条记录,你就会开始在服务器中看到这个查询慢的查询日志。

我建议保持简单并运行两个查询 第一个查询:获取用户状态
第二个查询:获取用户朋友状态'

第一个查询应该非常快,因为您最有可能使用用户userid(表上的主键,是吗?)。有时最好的方法就是保持简单。