Mysql数据库表帮助
我整天都在尝试整理一个mysql查询:任何帮助都会很好 我想把三件事联系起来。菜单项、菜单项组和权限级别 所以我有五张桌子: 一张有桌子的菜单 唯一id 我有一张团体桌 组id唯一 和一个menuIdGroupId表 groupId 梅纽德 我有一张特权桌 privilegeid unique 还有一个集体精神 IDGroup 特权 特权表和组表实际上只是组和特权的列表。privilegegegroup表和groupMenu表都是用来连接表以关联所有内容的 我尝试了很多查询组合,但都不起作用:Mysql数据库表帮助,mysql,database,Mysql,Database,我整天都在尝试整理一个mysql查询:任何帮助都会很好 我想把三件事联系起来。菜单项、菜单项组和权限级别 所以我有五张桌子: 一张有桌子的菜单 唯一id 我有一张团体桌 组id唯一 和一个menuIdGroupId表 groupId 梅纽德 我有一张特权桌 privilegeid unique 还有一个集体精神 IDGroup 特权 特权表和组表实际上只是组和特权的列表。privilegegegroup表和groupMenu表都是用来连接表以关联所有内容的 我尝试了很多查询组合,但都不起作用:
SELECT *
FROM `menuIdGroupId`
JOIN `menuItems` ON menuItems.id = menuIdGroupId.menuId
JOIN `groupsPrivls` ON groupsPrivls.idGroups = menuIdGroupId.groupId
WHERE groupsPrivls.idPrivilege = '1'
LIMIT 0 , 30
如果groupsPrivls是
idGroups idPrivilege
7 0
7 1
1 1
1 2
1 4
13 5
9 2
12 1
1 5
1 6
7 2
7 4
7 5
7 6
和menuIDGroupId
groupId menuId
1 30
7 29
1 31
1 29
1 33
7 33
4 33
1 32
7 30
7 31
id text
33 button 3
32 button 2
31 button 1
30 Church
29 About
结果是
groupId menuId id text idGroups idPrivilege
7 29 29 About Us 7 1
7 33 33 button 3 7 1
7 30 30 New to Church 7 1
7 31 31 button 1 7 1
1 30 30 New to Church 1 1
1 31 31 button 1 1 1
1 29 29 About Us 1 1
1 33 33 button 3 1 1
1 32 32 button 2 1 1
正如你所看到的,我得到了重复的条目,我不明白为什么。我猜我还没有在八点前准备好。任何帮助都会很好
谢谢
艾伦
对不起,格式太乱了 这里有一个基本问题:一个糟糕的模型。您对一起建模感兴趣的两件事都是树。我鼓励您查看邻接树或嵌套集树。这是假设您想要的菜单项中包含菜单项,对于组也是如此
另一种方法是将两者都建模为复合材料。在数据库中这样做需要使用继承,但在这些情况下,这将非常简单。谢谢。我担心我的mysql不适合树木和复合材料。我可以做基本的表格和一些连接。我曾希望,由于menuItems是唯一的,因此有可能在idPrivilege中找到menuItems。我可以用PHP解析它,但我担心的是一个fndemental缺陷,这将是一个坏消息。答案似乎是使用groupby函数发布您的最终查询,然后自己回答问题。我很肯定它可能会给你你可以使用的结果,但它将无法做任何嵌套。