我已经写了社交流的MySQL查询。仅一个多表的表获取数据连接
这就是:
SELECT distinct(d.id), d.directory, u.name, u.pic
FROM data as d, follow as f, users as u
WHERE f.flwid = $id
AND f.status = 1
AND d.blocked = '0'
AND (d.upld_id = $id OR d.timeline_id = $id OR d.upld_id = f.acid OR d.timeline_id = f.acid)
AND (d.`with`<if(f.is_con=1,3,2) or d.`with`<if(d.upld_id=$id,4,2))
AND u.id = d.upld_id
ORDER BY
d.id DESC
LIMIT 18
现在上面的问题是,当用户不遵循任何人(即遵循表中没有针对特定用户的任何行),它不会显示用户自己因为在随后的表中没有行,所以两个表都不加入,所以在家乡流中发布。
我无法配置我怎样才能改变这种查询我只用跟着表的corredentials 4-5的地方,我不能使用IN
与子查询,因为子查询会负担过重的服务器:)
任何帮助,请它将非常感激。
目前,它提供了这样的 数据如果用户遵循的一个或多个民族/页 比它显示用户自己跟着帐户的帖子。
** **,但如果用户不遵循任何其他帐户指的是新注册的用户比他/她共享任何职位不首页中显示的,因为后续的表不与其他两个表加入因为它没有会话用户的任何行。
编辑 上述SQL查询返回包含用户及其后续的唯一帖子的行。 我在PHP的帮助下在用户帐户的主页中显示这些帖子。 但我得到的问题是,当用户在新的或他/她不跟着别人比超过为什么用户自己的岗位也没有她/他的帐户的主出了后续的表不与数据表这就是加盟。有人帮助我解决我的SQL查询。 我发现只是其中的用户表,我将存储列命名为n_followings
,并在获取与查询,我将使用PHP状况数据的时间,如果n_followings == 0比我会用这个SQL查询非SQL想法
SELECT <columns> FROM data where timeline_id='$;id' or upld_id='$id'
仅供参考,'DISTINCT'不是一个函数,它并不需要这样的一个参数。这是一个适用于整个'SELECT'列表的关键字。 – Barmar 2014-09-01 14:57:06
请提供您想要的数据和结果。几乎不可能弄清楚你究竟在问什么。 – Bulat 2014-09-01 14:58:22
我再次编辑........................................ :) – 2014-09-19 15:53:29