2016-03-18 4 views
0

У меня есть 3 таблицы что-то вроде этого ..получить результат от 3 таблицы с 2 столбца соответствия MySQL

Table1. 
group_id  admin 
................ 
1   x 
2   y 
3   z 

Table2 
group_id  user 
.................... 
1    a 
1    b 
2    d 

Table3 
user   status 
...................... 
x    hi 
y    hello 
z    oh 
a    oho 
b    sss 
d    oops 

теперь вы можете видеть, что в приведенных выше таблицах мы имеем group id но в первой таблице у меня есть группа администратора а второй содержит членов группы. и следующий результат, который мы хотим получить примерно так, как group admin, так и group members мы хотим от группы подписчиков.

group_id  user   status 
.................................... 
1    x    hi 
1    a    oho 
1    b    sss 

Так ,,, Помогите нам, чтобы получить результат что-то вроде выше .. в mysql

+0

Union таблица 1 2 и присоединиться к 3 – xQbert

+0

узнать, как использовать [РЕГИСТРИРУЙТЕСЬ] (https: // ан .wikipedia.org/вики/Join_% 28SQL% 29) s? –

ответ

0

Если вы думаете о данных в терминах наборов данных ...

у вас есть данные в таблицах 1 и 2, которые соответствуют столбцам, но вам нужны они вместе. Таким образом, используя инструкцию UNION, вы можете объединить две таблицы, создать набор результатов и присоединиться к третьей таблице, чтобы получить желаемые результаты.

Это создает производную таблица аки зрения инлайн (совмещенный t2)

SELECT T2.Group_ID, T2.user, T3.Status 
FROM (SELECT group_ID, Admin as user 
     FROM table1 
     UNION ALL 
     SELECT group_ID, user 
     FROM table2 
    ) t2 
INNER JOIN table3 t3 
on t3.group_Id = T2.GroupID 
0

Попробуйте это?

SELECT table1.group_id, table3.user, table3.status 
FROM Table1, table2 
    LEFT JOIN table3 ON (table1.admin = table3.user OR table2.user = table3.user) 
WHERE table1.group_id = table2.group_id AND table1.group_id = 1 
GROUP BY table3.user 

Я предполагаю, что каждая группа имеет администратора и каждый пользователь имеет запись в таблице 3.

Смежные вопросы