简体   繁体   English

两个表上的SQL内连接

[英]SQL inner join on two tables

I have two tables, managers and users . 我有两个表, managersusers

managers : managers

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

etc. 等等

users : users

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

What I want to do is pull out a list of users' names and their user id's for a specific manager. 我想要做的是为特定的经理提取用户名和他们的用户ID列表。 So something like… 所以像......

Users for John are: John的用户是:

1000031  Jack
1000032  Mike
1000033  Paul

I tried the following SQL, but it's wrong: 我尝试了以下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'

I don't think there is error in your query.But you can try your query without quote as 我认为您的查询中没有错误。但是您可以在没有引用的情况下尝试查询

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

Please try the following: 请尝试以下方法:

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 = ?

Your query seems to be right,maybe your USER_ID is integer and you are comparing it with character string thats why its not working 您的查询似乎是正确的,也许您的USER_ID是整数,并且您将它与字符串进行比较,这就是为什么它不起作用

another solution: 另一种方案:

you can do it by using subquery also 你也可以使用子查询来做到这一点

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'))

Your query seems to be OK. 您的查询似乎没问题。
You can check the following SQL Fiddle . 您可以检查以下SQL小提琴

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
;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM