Я пытался разобраться с запросом mysql весь день :( любая помощь будет отличной.
Я пытаюсь связать три вещи. пункты меню, группы пунктов меню и уровни привилегий.
Итак, у меня есть пять таблиц:
Таблица меню с элементами
id (уникальный)
У меня есть групповая таблица
идентификатор группы (уникальный)
и таблица menuIdGroupId
идентификатор_группы
menuId
У меня есть таблица привилегий
привилегированный (уникальный)
и группыPrivlstable
idGroups
idPrivilege
Таблица привилегий и таблица групп на самом деле являются только списками групп и привилегий. Таблица привилегированных групп и таблица 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
Как видите, я получаю повторяющиеся записи и не понимаю, почему. Я предполагаю, что я не настроил это восемь. Любая помощь будет отличной.
Спасибо
Alan
PS извините, формат такой грязный!