簡體   English   中英

帶IN子句的SQL查詢

[英]SQL query with IN clause

我在一個頁面上工作,就像facebook feed頁面。 因此,我的查詢現在看起來像這樣:

$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返回我的事件和我的Friends事件。

有誰能夠幫助我 ?

我嘗試過的

 $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";

在您的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";

什么是$ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM