2013-08-14 5 views
0

У меня есть две таблицы, managers и users.SQL внутреннее соединение на двух таблицах

managers:

manager_user_id user_user_id 
--------------- ------------ 
1000011   1000031 
1000011   1000032 
1000011   1000033 

т.д.

users:

user_id name 
------- ---- 
1000011 John 
1000031 Jack 
1000032 Mike 
1000033 Paul 

То, что я хочу сделать, это вытащить список имен пользователей и их пользовательских идентификаторов для конкретного менеджера , Так что-то вроде ...

Пользователи для Джона являются:

1000031 Jack 
1000032 Mike 
1000033 Paul 

Я попытался следующий SQL, но это не так:

SELECT users.name, 
     users.user_id 
FROM users 
     INNER JOIN managers 
      on users.user_id = managers.user_user_id 
WHERE managers.manager_user_id='1000011' 
+1

Как это так? Какая ошибка? Возможно, удаление цитат около 1000011 поможет, так как я ожидаю, что идентификаторы будут целыми числами, а не строками. –

+0

В чем проблема с этим вопросом? –

ответ

2

Я не думаю, что есть ошибка в вашем query.But вы можете попробовать ваш запрос без кавычек, как

SELECT users.name, 
     users.user_id 
FROM users 
     INNER JOIN managers 
      on users.user_id = managers.user_user_id 
WHERE managers.manager_user_id=1000011 
+0

спасибо, что, похоже, сработало – JakeKempo

0

Пожалуйста, попробуйте следующее:

SELECT U.USER_ID, U.NAME 
FROM USER U JOIN MANAGER M ON U.USER_ID = M.USER_USER_ID 
JOIN USER U1 ON U1.USER_ID = M.MANAGER_USER_ID 
WHERE M.MANAGER_USER_ID = ? OR U1.NAME = ? 
0

Ваш запрос кажется правильным, возможно, ваш USER_ID является целым числом, и вы сравниваете его с символьной строкой, поэтому его не работает

другое решение:

вы можете сделать это с помощью подзапроса также

SELECT U.USER_ID, U.NAME 
FROM USERS U 
WHERE U.USER_ID IN (SELECT USER_USER_ID 
        FROM MANAGER 
        WHERE MANAGER_USER_ID IN (SELECT USER_ID FROM USERS WHERE NAME='John')) 
0

Ваш запрос, кажется, в порядке.
Вы можете проверить следующее: SQL Fiddle.

select u.name, u.user_id, m.manager_user_id 
from users u 
left join managers m on m.user_user_id = u.user_id 
; 
Смежные вопросы