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

我需要将我的个人 ID 附加到那个 IN 子句,所以我的 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 ?原始查询只有一个变量。我不明白你为什么需要另一个。换句话说,试试这个:

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 回答