3

基本上,我有一个支持用户表,不同部门有不同级别的不同用户。

所以假设我基本上有下表:

id | userID | deptID | level
1      1        1        1
2     119       1        2
3      2        1        3
4     101       2        1
5     104       2        2

而且我有id号码,所以假设我想让所有用户与:deptID中的用户相同,从而返回前三行。id3

那会是什么样的 SQL 语句?

4

5 回答 5

6

您可以使用以下包含子查询的查询:

SELECT * 
FROM <table> 
WHERE deptID=(
              SELECT deptID FROM <table> WHERE userID=3
             )
于 2013-02-07T13:40:25.523 回答
2
select  u.*
from    users u join users u2 on u.deptID = u2.deptID
where   u2.id = 3
于 2013-02-07T13:41:14.507 回答
1
SELECT *
FROM Users
WHERE deptID IN 
    (SELECT deptID FROM Users WHERE userID = 3)
于 2013-02-07T13:41:23.670 回答
0

试试这个

select my.*
from myTable my
join myTable myt on my.deptID = myt.deptID
where myt.id = 3
于 2013-02-07T13:45:18.487 回答
0
select * from data where deptid in (select deptid from data where id=3);

使用此查询

于 2013-02-07T13:45:46.823 回答