2015-05-16 4 views
1

Там есть схема, которая выглядит так:Присоединитесь к соединительной таблице, как?

CREATE TABLE `sys_users` (

    `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    `last_name` varchar(255) NOT NULL, 
    `available` varchar(1) NOT NULL 

) DEFAULT CHARSET=UTF8; 

CREATE TABLE IF NOT EXISTS `sys_groups_list` (

    `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    `name` VARCHAR(255) NOT NULL 

) DEFAULT CHARSET=UTF8; 

CREATE TABLE IF NOT EXISTS `sys_groups_junction` (

`group_id` INT NOT NULL, /* <-- Refers to sys_groups_list.id */ 
`usr_id` INT NOT NULL /* <-- Refers to sys_users.id */ 

) DEFAULT CHARSET=UTF8; 

На входе у меня есть id некоторого пользователя. На выходе, результат должен выглядеть так:

id | last_name | available | group_name 
... | ........ | ......... | .......... 

Я не знаю, как написать 3 JOIN s правильно для достижения этой цели, в любое время я стараюсь я в конечном итоге с синтаксическими ошибками. Итак, можете ли вы предложить, как правильно писать SQL?

ответ

2
SELECT sys_users.id, lastname, available, sys_groups_list.name 
FROM sys_users 
JOIN sys_groups_junction 
ON sys_users.id = sys_groups_junction.usr_id 
JOIN sys_groups_list 
ON sys_groups_junction.group_id = sys_groups_list.id 
Смежные вопросы