0

Facebookのフィードページのようなページで作業しています。したがって、私のクエリは次のようになります。

$sql = "SELECT * 
        FROM event 
        WHERE id_user IN (
              SELECT a.id_user_stalkers 
              FROM stalkers a 
              WHERE a.id_user = ".$id_profile.")  
        ORDER by date DESC 
        LIMIT 0, 10";

ストーカー-友達

テーブルストーカー:

id  id_user  id_user_friend

そのIN句に個人IDを追加する必要があるので、qyeryは私のイベントと友人のイベントを返します。

誰かが私を助けることができますか?

私が試したこと

 $sql = "SELECT * 
         FROM event 
         WHERE id_user IN (
               SELECT a.id_user_stalkers 
               FROM stalkers a  
               WHERE a.id_user = ".$id_profile.") 
        OR id_user = ".$id_profile."  
        ORDER by date DESC 
        LIMIT 0, 10";
4

2 に答える 2

1

SQLとテーブルに何か問題があるようです

1-あなたが持っているあなたのテーブルid_user_friendで、あなたが作っているあなたのSQLでid_user_stalkers

2-最初のテーブルに日付があるかどうかわかりませんか、それともNOW().? あなたは最初のテーブルを共有しなかったので。

これを試して

 $sql = "SELECT * FROM event e WHERE id_user 
           IN (SELECT a.id_user_friend FROM stalkers a  
           WHERE a.id_user = ".$id_profile.")
            OR e.id_user = ".$id_user." 
          ORDER by e.date DESC LIMIT 0, 10";
于 2012-12-20T13:43:58.060 に答える
0

$id_user とは? 元のクエリには変数が 1 つしかありません。なぜ別のものが必要なのかわかりません。つまり、これを試してください:

SELECT *
FROM event e
WHERE id_user IN (SELECT a.id_user_friend
                  FROM stalkers a  
                  WHERE a.id_user = ".$id_profile."
                 ) OR
     e.id_user = ".$id_profile." 
ORDER by e.date DESC LIMIT 0, 10
于 2012-12-20T14:27:11.423 に答える