好的,我遇到了问题。我有一个社交网站,并有一些代码,只会从朋友那里调用状态。我希望它可以调用来自朋友和登录用户的状态。具体的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的新手。我理解,当然,我只是不明白它是如何正确设置的。
答案 0 :(得分:1)
您使用的UNION和JOIN越多,开始累积的开销就越大。一旦你尝试将这个记录扩展到10,000条记录,你就会开始在服务器中看到这个查询慢的查询日志。
我建议保持简单并运行两个查询
第一个查询:获取用户状态
第二个查询:获取用户朋友状态'
第一个查询应该非常快,因为您最有可能使用用户userid(表上的主键,是吗?)。有时最好的方法就是保持简单。