使用PDO并根据用户组获取链接

时间:2013-02-28 11:08:24

标签: php mysql pdo

在用PHP编码的时刻使用CMS,我遇到了一个小的“阻碍”。

我正在使用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

在我看来,这意味着“显示关系表中不存在的所有链接”,因为任何人都不应该看到不存在的链接。

有任何建议或想法吗?我很确定有办法做到这一点。但也许我从错误的角度攻击这个问题?

2 个答案:

答案 0 :(得分:0)

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

告诉我它是怎么回事。

答案 1 :(得分: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
       )