这是一个SQL问题,我会尽力解释。
我有一张如下表所示的表
id name accounts
1 Jim 7001
1 Jim 7002
1 Jim 7003
2 Ryan 7001
3 Todd 7001
3 Todd 7003
2 Ryan 7002
4 Cam 7001
5 Fran 7001
2 Ryan 7003
1 Jim 7004
我首先尝试查找帐户列为'7001'的所有值,以找到正确的ID。在那之后,我只需要用那些id来拉线,这样我就可以看到那些特定id的所有账号。
我正在使用的示例代码
select
s.id,
s.name,
s.account
from
students s
where
s.account in ('7001','7002','7003','7004')
我可以使用2个查询来查找带有'7001'帐户值的id,然后再为id执行另一个查询但是想知道是否有写入的方法以便一次性计算
提前致谢!
答案 0 :(得分:0)
SELECT *
FROM tableName
WHERE ID IN
(
SELECT ID
FROM tableName
WHERE accounts = 7001
)
JOIN
版本(推荐)
SELECT a.*
FROM students a
INNER JOIN students b
ON a.ID = b.ID
WHERE b.accounts = 7001
答案 1 :(得分:0)
select t2.*
from tbl t1, tbl t2
where t1.accounts = '7001'
and t1.id = t2.id
答案 2 :(得分:0)
此解决方案已经过优化:
SELECT a.*
FROM tableName as a
INNER JOIN tableName as b
ON a.id = b.id
AND b.accounts = 7001