2017-12-06 24 views
-1

私はこのサブクエリを持っており、ユーザーが従っているユーザーの投稿を取得しています。これがサブクエリです。Sqlは、共通の列を持たない別のテーブルと2つのテーブルを結合します。

$query = "SELECT * FROM `Posts` WHERE UserID IN 
    (
    SELECT Followed FROM `Follow` WHERE Follower = ? 
    ) 
    ORDER BY PostDate DESC 
    "; 

// on bind_param ? will be $userID 

これは正常に動作しますが、私はまた、プロファイルテーブルからユーザー自身の投稿してデータを取得したいので、私はおそらく参加のいくつかの並べ替えのためにサブクエリを捨てるつもりです。私は内側の結合を使用していましたが、プロファイル/投稿テーブルには共通のID 'UserID'がありますが、Followテーブルはありません。完全に参加するか、ASを使用する必要がありますか?

+0

以下の表には、PostsのIDを持つ共通のIDはありません。 – isaace

答えて

1

unionが最適かもしれません。

SELECT * FROM posts WHERE UserID = ? 
UNION ALL 
SELECT P.* 
FROM posts P 
INNER JOIN follow F ON F.followed = P.UserID 
WHERE F.follower = ? 
関連する問題