2013-02-28 56 views
0

在使用PHP編碼的時刻使用CMS,我遇到了一個小的「障礙」。使用PDO並根據用戶組獲取鏈接

我正在使用PDO(mysql)連接,我有兩個表。

Navigation_links具有以下欄目:idtitlepageid Navigation_links_usergroups_relations這些列:linkidusergroupid

首先,我想創建一個查詢,通吃中未表示的路段在關係表中。這對我來說非常困難。我已經試過這樣的事情:

SELECT navigation_links.id ,navigation_links.title, navigation_links.pageid 
    FROM navigation_links, navigation_links_usergroups 
WHERE navigation_links.id != navigation_links_usergroups.linkid 

這在我的腦海翻譯是,不應該有任何人看到的鏈接,「這不會在關係表中存在顯示所有鏈接」。

任何意見或建議?我很確定有一種方法可以做到這一點。但也許我從錯誤的角度來攻擊這個問題?

回答

0

您需要使用相關子查詢,例如:

SELECT l.id, l.title, l.pageid 
    FROM navigation_links AS l 
WHERE NOT EXISTS(
      SELECT lug.* 
      FROM navigation_links_usergroups AS lug 
      WHERE lug.linkid = l.id 
     ) 
+0

謝謝,我是這麼認爲真正需要的。 :) 現在我只需要對鏈接進行匹配查詢,只有特定的組ID可以看到和我設置。 是否有可能通過值的數組進行搜索以查看用戶是否具有正確的關係?例如, 'WHERE lug.usergroupid = IN(數組(用戶擁有的arrayofusergroupID))' – 2013-02-28 11:44:10

0
SELECT n.id, n.title, n.pageid 
    FROM navigation_links n, navigation_links_usergroups nl 
     WHERE 
      n.id <> nl.linkid 

告訴我是怎麼回事。

+0

它不會給他什麼,他需要 – 2013-02-28 11:20:14