我試圖找到一種有效的方式來顯示登錄帳戶持有人跟蹤的人的所有帖子。SQL:選擇所有帖子從關注者
有兩個關鍵表:
1-帖子
表名:posts
id
,account_name
,published, body
2-遵循
表名:follows
id
,account_name
,followed_name
我試圖找到,我可以從所有正在遵循的賬戶顯示所有帖子的方式。帖子和關注之間的連接是Account_name
。
我知道它可能是一個連接,但它是我如何構造WHERE
子句。到目前爲止,我有以下(帳戶名通過$ _SESSION [「ACCOUNT_NAME」]設置):
$sql = "SELECT * FROM posts LEFT JOIN follows ON posts.account_name = follows.account_name WHERE --- How would I only get the posts from the accounts being followed ?---"
我敢肯定,這是簡單的東西我的大腦只是感覺耗盡,我似乎無法工作了。
更新PDO
試圖在此刻返回NULL,
$sql = "SELECT * FROM share_posts WHERE account_name IN (SELECT followed_name FROM $this->account_follows WHERE account_name = :account_name)";
return $this->AC->Database->select($sql, array('account_name' => $account_name));
的進入我的數據庫類:
public function select($sql, $array = array(), $fetch_mode = PDO::FETCH_ASSOC)
{
$stmt = $this->AC->PDO->prepare($sql);
foreach ($array as $key => $value)
{
$stmt->bindValue("$key", $value);
}
$stmt->execute();
return $stmt->fetchALL($fetch_mode);
}
返回的數據是目前空連儘管登錄賬戶已經跟隨其他賬戶。
你能澄清一下,是不是ACCOUNT_NAME的情況如下followed_name,或者是followed_name如下ACCOUNT_NAME(誰是下誰從該表) – CodePB 2013-03-12 15:29:53
有什麼不對您的查詢「原樣」(無WHERE子句)? – 2013-03-12 15:35:07
@pburgess Account_name是已登錄的帳戶,而Following_name是正在遵循的帳戶...因此,account_name的follow_name爲 – HireLee 2013-03-12 15:51:00