Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL选择表中与“..”具有相同ID的所有_Mysql_Sql - Fatal编程技术网

Mysql SQL选择表中与“..”具有相同ID的所有

Mysql SQL选择表中与“..”具有相同ID的所有,mysql,sql,Mysql,Sql,基本上,我有一个支持用户表,在不同的部门有不同级别的不同用户 假设我基本上有下表: 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与id: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与id:3中的用户相同,因此返回前三行


这是什么样的SQL语句?

您可以使用以下查询,其中包含一个子查询:

SELECT * 
FROM <table> 
WHERE deptID=(
              SELECT deptID FROM <table> WHERE userID=3
             )
试试这个

select my.*
from myTable my
join myTable myt on my.deptID = myt.deptID
where myt.id = 3

使用此查询

@Chud37它们被称为子查询它们被称为子选择。可能是因为您的表中没有userId=3的用户哦,对了,不是userId而是id,工作得很好!谢谢你,我学到了一些新的东西:记得更改你的表名。未经测试,我会说加入。。。哪里出了错,但似乎至少MySQL毫无怨言地接受了:加入。。。不过,其他数据库需要的是ON。是的,它仍然是有效的SQL,但不需要如此陈旧的skool。答案已编辑…我想这应该是myt.id=3。。。?
SELECT *
FROM Users
WHERE deptID IN 
    (SELECT deptID FROM Users WHERE userID = 3)
select my.*
from myTable my
join myTable myt on my.deptID = myt.deptID
where myt.id = 3
select * from data where deptid in (select deptid from data where id=3);