例如,如果我有
follow table
company one ( cid = 1 ) following two ( cid = 2 )
company one ( cid = 1 ) following three( cid = 3 )
feeds table
company one ( cid = 1 ) type 'product' description 'hello ive updated a product';
company two ( cid = 2 ) type 'product' description 'hello ive updated a product im from company 2';
company three ( cid = 3 ) type 'shoutout' description 'hello ive i got a shoutout im company 3';
company one ( cid = 1 ) type 'product' description 'hello ive updated my second product';
问题
如何从我公司的公司获取所有feeds.description(例如cid = 1)?
继承我的简单pdo sql以获得我的。
$data['feeds']['cid'] = 1;
return $this->db->fetchAll("SELECT feeds.type, feeds.$type, feeds.cid, feeds.time, companies.name FROM feeds, companies WHERE
feeds.cid = :cid AND companies.cid = :cid ORDER BY feeds.fid DESC LIMIT 0, 5", $data['feeds']);
this will display
hello ive updated a product
hello ive updated my second product
也许是这样的? (失败)
$data['feeds']['cid'] = 1,2,3;
return $this->db->fetchAll("SELECT feeds.type, feeds.$type, feeds.cid, feeds.time, companies.name FROM feeds, companies WHERE
feeds.cid = :cid AND companies.cid = :cid ORDER BY feeds.fid DESC LIMIT 0, 5", $data['feeds']);
this should be displaying like
hello ive updated a product
hello ive updated a product im from company 2
hello ive i got a shoutout im company 3
hello ive updated my second product
或者更简单从每个关注获取feeds.description。来自我(cid = 1,2,3等)。 (cid = 1) 或者如果twitter获得我所有朋友的身份(我关注的朋友)
编辑*
irc mysql的一些好人说要使用连接。但我只是不明白。 我得到的是这个fetch all the follow.following from cid = me ( example cid = 1 )
然后
SELECT * FROM feeds WHERE feeds.cid = IN (2,3,cid that im following ( see follow.following ))
任何人都可以举个例子来加入这个问题吗?
答案 0 :(得分:1)
因此,假设问题是“我如何从我的公司正在遵循的公司获得所有feeds.description?”您想使用以下密钥加入:
select
companies.name,
feeds.type,
feeds.description
from follow
inner join feeds on (follow.following = feeds.cid or follow.cid = feeds.cid)
inner join companies on (feeds.cid = companies.cid)
where follow.cid = :cid
order by feeds.fid desc
limit 5;
这应列出您的:cid(1)所关注的所有公司。
编辑:Feed应该包含我公司所关注的公司Feed + Feed。