0

目前使用 PHP 编码的 CMS,我遇到了一个小的“障碍”。

我正在使用 PDO(mysql) 连接,并且我有两个表。

Navigation_links具有以下列 :和这些列 :idtitlepageid Navigation_links_usergroups_relationslinkidusergroupid

首先,我正在尝试创建一个查询,该查询采用关系表中未表示的所有链接。这对我来说非常困难。我尝试过这样的事情:

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

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

有什么建议或想法吗?我很确定有办法做到这一点。但也许我从错误的角度解决问题?

4

2 回答 2

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

告诉我进展如何。

于 2013-02-28T11:17:23.933 回答
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
       )
于 2013-02-28T11:18:21.717 回答