2013-10-15 6 views
-2

У меня есть следующая таблица в моей базе данных. Я пытаюсь получить данные из всех трех таблиц.Inner Join Mysql duplicate records

Структура таблицы:

User_New 
    User_ID 
    Name 
    Password 
    Email 

User_Group_New 
    User_ID 
    Group_ID 

Group_New 
    Group_ID 
    Group_Name 

Проблема: Я получаю повторяющиеся записи.

Запрос:

SELECT * 
FROM `User_New` 
INNER JOIN User_Group_New ON User_Group_New.User_ID = User_New.User_ID 
INNER JOIN Group_New ON Group_New.Group_ID = User_Group_New.Group_ID 
LIMIT 0, 30 
+3

Добавить образец входных данных и результат, который вы получаете. Не должно быть дублированных результатов в запрошенном вами запросе, если user_id и group_id действительно являются PK, и у вас есть составная PK в user_group_new. –

+2

Вы хотите видеть пользователя более одного раза в результате? Ожидал бы пользователя более одного раза, если он принадлежит более чем одной группе. – asantaballa

ответ

0
SELECT DISTINCT * 
FROM `User_New` 
INNER JOIN User_Group_New ON User_Group_New.User_ID = User_New.User_ID 
INNER JOIN Group_New ON Group_New.Group_ID = User_Group_New.Group_ID 
LIMIT 0, 30 

мая, которые решают ваши.

+0

Если идентификаторы являются PK и в user_group_new есть составной PK, это даст точно такие же результаты. –

+0

@MostyMostacho OP не прояснил ситуацию. Поэтому каждое решение имеет успех. – revo

+0

Привет всем, Спасибо всем за ваши предложения. Идея заключается в создании системы управления пользователями. например пользователь может быть назначен нескольким группам, и группа может иметь несколько пользователей. Пользователь также может быть администратором или менеджером. Вы, ребята, знаете, как я должен структурировать свою базу данных? – Dharmesh