sql-从一列中查找值以从另一列中查找所有其他值
这是一个SQL问题,我会尽力解释 我有一张如下表sql-从一列中查找值以从另一列中查找所有其他值,sql,if-statement,case,Sql,If Statement,Case,这是一个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 我首先尝试查找accounts列为“7001”的所有值,以查找正确的id
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
我首先尝试查找accounts列为“7001”的所有值,以查找正确的id。之后,我只需要拉线与这些id的,所以我可以看到这些特定的id的所有帐户
我正在使用的示例代码
select
s.id,
s.name,
s.account
from
students s
where
s.account in ('7001','7002','7003','7004')
我可以通过两个查询来实现这一点,一个是查找帐户值为“7001”的id,然后仅针对id运行另一个查询,但我想知道是否有一种写入方法,以便一次计算所有id 提前谢谢
SELECT *
FROM tableName
WHERE ID IN
(
SELECT ID
FROM tableName
WHERE accounts = 7001
)
JOIN
版本(推荐)
SELECT a.*
FROM tableName as a
INNER JOIN tableName as b
ON a.id = b.id
AND b.accounts = 7001
如果
accounts
是一个整数,我们可以在这里使用group by吗?@AshReva你想聚合一些字段吗?@AshReva请澄清你到底需要什么不,我只是想如果我们也可以使用group by。那很好。对不起bothering@AshReva询问:D
没有问题<当您想使用聚合函数(如SUM()、MAX()、MIN()等)聚合某些文件时,可以使用code>groupby
子句。
select t2.*
from tbl t1, tbl t2
where t1.accounts = '7001'
and t1.id = t2.id
SELECT a.*
FROM tableName as a
INNER JOIN tableName as b
ON a.id = b.id
AND b.accounts = 7001