2016-07-21 8 views
0

クエリは、ユーザーが投稿を表示します。MYSQLとPHPが2つのクエリを結合する

$sql = "SELECT B.title, B.article, B.article_id, B.posted_by, B.users_id,DATE_FORMAT(updated, '%m-%d-%Y %l:%i:%s') AS updated , U.user_pic_path, U.user_id, U.username, I.filename 
     FROM users U 
     INNER JOIN blog B 
     ON B.posted_by = U.user_id 
     LEFT OUTER JOIN images AS I 
     ON B.image_id = I.image_id 
     WHERE B.users_id = ? 
     AND B.posted_by = ? 
     ORDER BY updated DESC" 

私の友人であるユーザーを選択するようにクエリします。

$sql = "SELECT F.status,U.user_id, U.username, U.email, U.user_pic_path 
     FROM users U, friends F 
     WHERE 
     CASE 
     WHEN F.friend_one =? 
     THEN F.friend_two = U.user_id 
     WHEN F.friend_two = ? 
     THEN F.friend_one= U.user_id 
     END 
     AND F.status = 2"; 

私は、私の友人であるユーザーが作成したすべてのブログ投稿を表示したいと思います。これを行うには、両方とも両方のクエリを結合する必要があります。私は立ち往生して、どうすればそれをやることができるかわからない。

+0

あなたは 'IN'声明使用することができます - あなたの "ユーザーによって作られたポスト" クエリを使用して、どこを変更(IN' user_idをするcluase) 'と'、IN 'あなたの友人クエリを含む句:' SELECT ... FROM users U .... WHERE B.users_id IN(SELECT F.user_id FROM users U、friends F WHERE ....) ' –

答えて

2

あなたは'WHERE id_users IN (SELECT())'でそれを行うことができます(友人のクエリ)をid_users

投稿クエリを。

このような何か:

$sql = "SELECT B.title, B.article, B.article_id, B.posted_by, B.users_id,DATE_FORMAT(updated, '%m-%d-%Y %l:%i:%s') AS updated , U.user_pic_path, U.user_id, U.username, I.filename 
     FROM users U 
     INNER JOIN blog B 
     ON B.posted_by = U.user_id 
     LEFT OUTER JOIN images AS I 
     ON B.image_id = I.image_id 
     WHERE B.users_id IN (
      SELECT U.user_id 
      FROM users U, friends F 
      WHERE 
      CASE 
      WHEN F.friend_one =? 
      THEN F.friend_two = U.user_id 
      WHEN F.friend_two = ? 
      THEN F.friend_one= U.user_id 
      END 
      AND F.status = 2 
     ) 
     AND B.posted_by = ? 
     ORDER BY updated DESC" 
+0

ありがとう –

+0

それが正しいかどうか確認してください。 :-) – Grommy