在用PHP编码的时刻使用CMS,我遇到了一个小的“阻碍”。
我正在使用PDO(mysql)连接,我有两个表。
Navigation_links
包含以下列:id
,title
和pageid
Navigation_links_usergroups_relations
包含以下列:linkid
和usergroupid
首先,我正在尝试创建一个查询,该查询包含在关系表中未表示的所有链接。这对我来说非常困难。我尝试过这样的事情:
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 :(得分: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
)