簡體   English   中英

sql-從一列中查找值以從另一列中查找所有其他值

[英]sql - find value from a column to find all other values from another column

這是一個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的查詢,但想知道是否有一種寫方法,以便一次計算所有的ID。

提前致謝!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM